모델 바인딩 및 요청 요청?
-
12-09-2019 - |
문제
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를 사용할 수 있습니다 맞춤형 모델 바인더. 또한 읽습니다 이것.
제휴하지 않습니다 StackOverflow