문제

HTML 양식에는 모델 바인딩에 대한 수많은 예가 있지만 ActionLinks/Get Requests에 모델 바인딩을 사용할 수 있는지 궁금합니다.

따라서 다음 모델이 주어지면

public class Lurl
{
  public string Str {get;set;}
  public char Chr {get;set;}
  public double Dbl {get;set;}
}

그리고 다음 경로 (이것이 어떻게 형성 될지 잘 모르겠습니다. URL이 어떻게 속성을 제공하는지 보여주기 위해 제시합니다)

routes.MapRoute(
    "LurlRoute",
    "Main/Index/{str}/{chr}/{dbl}",
    new
    {
        controller = "Main",
        action = "Index",
        lurl = (Lurl)null
    }
);

내 컨트롤러에서 이런 식으로 사용하고 싶습니다.

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Index(Lurl lurl)
{
  /* snip */
}

그리고 내 페이지에서 이런 식으로 (두 가지 가능한 옵션; 더 있습니까?)

<div class="links">
  <%Html.ActionLink("Link one", "Index", new { lurl = Model })%><br />
  <%Html.ActionLink("Link two", "Index", 
         new { str = Model.Str, chr = Model.Chr, dbl = Model.Dbl })%>
</div>

모델 바인딩 인프라에서 가능합니까? 그렇다면 샘플을 작동시키기 위해 샘플에 무엇을해야합니까?

도움이 되었습니까?

해결책

매개 변수 접근 방식으로 클래스를 선택해야한다고 생각합니다.

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Index(Lurl lurl)
{
   /* snip */
}

또는 매개 변수로서의 속성이 접근합니다

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Index(string str, char chr, double dbl)
{
    /* snip */
}

... 클래스에서 매개 변수 접근 방식으로 "updatemodel"메소드를 사용할 수 있습니다. 모델에서 몇 가지 값 만 업데이트하려는 경우 해당 메소드로 업데이트하려는 매개 변수의 화이트리스트를 전달할 수 있습니다.

또한 MAPROUTE에서 경로 경로에서 어떤 매개 변수가 맵핑 될까요? 나는 거기에 일대일 상관 관계가 있어야한다고 확신합니다.

다른 팁

당신은 또한 a를 사용할 수 있습니다 맞춤형 모델 바인더. 또한 읽습니다 이것.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top