bool을 막는 wierd 시나리오를 발견했습니다. 제어기에 올바르게 다시 게시됩니다. 매우 구체적인 문제이므로 재현 단계를 따르십시오.ASP.Net MVC3 모델 바인딩 버그
응용 프로그램은/Home/URL 대신/Virtual/Home/Test가되도록 IIS의 가상 폴더로 배포해야합니다.
홈 컨트롤러 :
[HttpGet]
public ActionResult Test(int? temp, bool? testBool)
{
return View(testBool);
}
/홈/시험보기 (면도기 cshtml) : 후 다시 부울에
@model bool?
@{
ViewBag.Title = "Test";
}
@using (Html.BeginForm("Test", "Home", FormMethod.Get))
{
@Html.CheckBox("testBool", Model ?? false, new { onchange = "this.form.submit();" })
@Html.Label(Model == true ? "True" : "False")
}
? int 때문에 컨트롤러로 보내지 않습니까? 매개 변수 목록에 표시됩니다. 이것은 bool을 넣음으로써 해결할 수 있습니까? int 앞에? 매개 변수 목록에 있지만 분명히 이것을 할 필요는 없습니다. IIS의 Virtual 폴더에 없으면 제대로 작동합니다. bool 대신 bool을 게시하더라도 POST 메서드를 사용하는 경우에도 동일한 문제가 발생합니다. 작동하지만 가상 폴더에없는 경우에는 필요하지 않으므로이 작업을 수행하지 않아도됩니다.
다른 사람이 이것을 경험했는데 왜 바인딩이 실패하는지 또는 MVC3의 버그 일 뿐이라는 것을 설명하는 사람이 있습니까?
버그 일 뿐이며 누구나 버그 리포트를 제출하기위한 적절한 ASP.Net MVC 채널을 알고 있습니까?
업데이트 : 난 당신이 액션 매개 변수에 널 (NULL) 변수의 숫자가있는 경우에만 첫 번째 이제까지 작동하며 다른 모든 채워 할 수 없게됩니다 것으로 나타났습니다
. 이것은 설계 상 또는 버그인지 누구나 알고 있습니까?
그게 효과가! 우수한. 지시 한대로 Global.asax.cs의 Application_Start 메소드에 추가 한 행을 추가하십시오. 아무도이 문제에 대한 해답을 갖지 않을까 걱정하기 시작했습니다. 다행히도 버그는 향후 업데이트에서 MVC 팀에 의해 해결 될 수 있습니다. 당신의 도움을 주셔서 감사합니다. –
굉장, @ 크리스. 다행 이네. 이상하게도 로컬 디버깅에서 작동하여 내 테스트 서버에 어떤 버전이 설치되었는지 궁금합니다 ...:) – Buildstarted
어쩌면 당신은 MVC3의 최신 버전을 가지고 있습니다. 새 버전이 있는지 확인해야합니다./Virtual/Home/Test와 같은 가상 디렉터리에 설치 했습니까? 제대로하지 않으면 꽤 많은 비트가 있습니다. 모든 게시물이 내 게시물에 자세히 설명되어 있습니다. –