IT TIP

MVC Razor 마크 업에서 쿼리 문자열 매개 변수를 가져 오는 방법은 무엇입니까?

itqueen 2020. 11. 23. 20:43
반응형

MVC Razor 마크 업에서 쿼리 문자열 매개 변수를 가져 오는 방법은 무엇입니까?


Razor 마크 업에서 URL 매개 변수를 확인하고 싶습니다. 예를 들어, 다음과 같이 어떻게합니까?

<div id="wrap" class="@{if (URL "IFRAME" PARAMETER EQUALS 1) iframe-page}">

비슷한 스레드

<div id="wrap" class=' @(ViewContext.RouteData.Values["iframe"] == 1 ? /*do sth*/ : /*do sth else*/')> </div>

2014 년 1 월 10 일 수정 : 이 질문이 매우 인기가 많기 때문에이 답변이 개선되었습니다.

위의 예는에서만 값을 가져 RouteData오므로 일부 등록 된 경로에서 포착 한 쿼리 문자열에서만 가져옵니다. 쿼리 문자열 값을 얻으려면 현재 HttpRequest. 가장 빠른 방법은 (TruMan이 지적했듯이)`Request.Querystring '을 호출하는 것이므로 대답은 다음과 같아야합니다.

<div id="wrap" class=' @(Request.QueryString["iframe"] == 1 ? /*do sth*/ : /*do sth else*/')> </div>

RouteValues와 QueryString MVC를 확인할 수도 있습니다 .

03-05-2019 편집 : 위의 솔루션은 .NET Framework에서 작동합니다 .
다른 사람들이 지적했듯이 .NET Core 에서 쿼리 문자열 값을 얻으려면 경로 Query에서 개체 를 사용해야 합니다 Context.Request. 따라서 다음과 같습니다.

<div id="wrap" class=' @(Context.Request.Query["iframe"] == new StringValues("1") ? /*do sth*/ : /*do sth else*/')> </div>

pure 대신 struct를 반환 StringValues("1")하기 때문에 문에서 사용 하고 있습니다. 그것이 내가 찾은이 scenerio의 방법을 정리합니다.QueryStringValuesstring


.net core 2.0을 사용하는 경우 다음과 같습니다.

Context.Request.Query["id"]

샘플 사용법 :

<a href="@Url.Action("Query",new {parm1=Context.Request.Query["queryparm1"]})">GO</a>

더 우아한 해결책은 컨트롤러와 ViewData 사전을 사용하는 것입니다.

//Controller:
public ActionResult Action(int IFRAME)
    {
        ViewData["IsIframe"] = IFRAME == 1;
        return View();
    }

//view
@{
    string classToUse = (bool)ViewData["IsIframe"] ? "iframe-page" : "";
   <div id="wrap" class='@classToUse'></div>
 }

다른 답변이 '현재 컨텍스트에 이름이 존재하지 않습니다.'와 같은 오류가 발생하기 때문에 이것을 답변으로 게시하는 것이 좋습니다.

다음 작품을 사용하십시오.

Request.Query["queryparm1"]

샘플 사용법 :

<a href="@Url.Action("Query",new {parm1=Request.Query["queryparm1"]})">GO</a>

어떤 답변도 저에게 효과가 없었습니다. " 'HttpRequestBase'에 'Query'에 대한 정의가 포함되어 있지 않습니다."라는 메시지가 표시되었지만이 방법은 작동했습니다.

HttpContext.Current.Request.QueryString["index"]

Asp.net Core 2 용

ViewContext.ModelState["id"].AttemptedValue

참고 URL : https://stackoverflow.com/questions/11248064/how-to-get-query-string-parameter-from-mvc-razor-markup

반응형