ASP.NET MVC-URL의 매개 변수 추출
내 URL의 매개 변수를 추출하려고합니다.
/ 관리 / 고객 / 편집 / 1
추출물 : 1
/ Administration / Product / Edit / 18? allowed = true
추출 : 18? allowed = true
/ Administration / Product / Create? allowed = true
추출 : ? allowed = true
누군가 도울 수 있습니까? 감사!
최신 정보
RouteData.Values["id"] + Request.Url.Query
모든 예와 일치합니다.
달성하려는 목표가 완전히 명확하지 않습니다. MVC는 모델 바인딩을 통해 URL 매개 변수를 전달합니다.
public class CustomerController : Controller {
public ActionResult Edit(int id) {
int customerId = id //the id in the URL
return View();
}
}
public class ProductController : Controller {
public ActionResult Edit(int id, bool allowed) {
int productId = id; // the id in the URL
bool isAllowed = allowed // the ?allowed=true in the URL
return View();
}
}
기본값보다 먼저 global.asax.cs 파일에 경로 매핑을 추가하면 / administration / 부분이 처리됩니다. 또는 MVC 영역을 살펴볼 수도 있습니다.
routes.MapRoute(
"Admin", // Route name
"Administration/{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
원시 URL 데이터 인 경우 컨트롤러 작업에서 사용할 수있는 다양한 URL 및 요청 속성 중 하나를 사용할 수 있습니다.
string url = Request.RawUrl;
string query= Request.Url.Query;
string isAllowed= Request.QueryString["allowed"];
Request.Url.PathAndQuery
당신이 원하는 것이 될 수있는 것 같습니다 .
게시 된 원시 데이터에 액세스하려면 다음을 사용할 수 있습니다.
string isAllowed = Request.Params["allowed"];
string id = RouteData.Values["id"];
public ActionResult Index(int id,string value)
이 함수는 URL에서 값을 가져옵니다. 그 후 아래 함수를 사용할 수 있습니다.
Request.RawUrl
-현재 페이지의 전체 URL 반환
RouteData.Values
-URL 값 모음 반환
Request.Params
-반환 이름 값 컬렉션
ControllerContext.RoutValues 개체에서 이러한 매개 변수 목록을 키-값 쌍으로 가져올 수 있습니다.
일부 변수에 저장할 수 있으며 논리에서 해당 변수를 사용할 수 있습니다.
매개 변수의 값을 얻기 위해 RouteData를 사용할 수 있습니다.
더 많은 맥락이 좋을 것입니다. 애초에 '추출'해야하는 이유는 무엇입니까? 다음과 같은 작업이 있어야합니다.public ActionResult Edit(int id, bool allowed) {}
이 방법을 썼습니다.
private string GetUrlParameter(HttpRequestBase request, string parName)
{
string result = string.Empty;
var urlParameters = HttpUtility.ParseQueryString(request.Url.Query);
if (urlParameters.AllKeys.Contains(parName))
{
result = urlParameters.Get(parName);
}
return result;
}
그리고 나는 이것을 다음과 같이 부릅니다.
string fooBar = GetUrlParameter(Request, "FooBar");
if (!string.IsNullOrEmpty(fooBar))
{
}
I'm not familiar with ASP.NET but I guess you could use a split function to split it in an array using the / as delimiter, then grab the last element in the array (usually the array length -1) to get the extract you want.
Ok this does not seem to work for all the examples.
What about a regex?
.*(/|[a-zA-Z]+\?)(.*)
then get that last subexpression (.*)
, I believe it's $+
in .Net, I'm not sure
ReferenceURL : https://stackoverflow.com/questions/5003953/asp-net-mvc-extract-parameter-of-an-url
'programing' 카테고리의 다른 글
SQL 형식화 표준 (0) | 2021.01.14 |
---|---|
Java Swing에 사용할 수있는 좋은 무료 날짜 및 시간 선택기가 있습니까? (0) | 2021.01.14 |
백그라운드 작업자를 완전히 "죽이는"방법은 무엇입니까? (0) | 2021.01.14 |
실시간 광고 플랫폼을위한 MongoDB vs. Cassandra vs. MySQL (0) | 2021.01.14 |
AuthorizeAttribute 재정의 AuthorizeCore 또는 OnAuthorization 확장 (0) | 2021.01.14 |