반응형
MVC 3 문자열을 뷰의 모델로 전달할 수 없습니까?
뷰에 전달 된 모델에 이상한 문제가 있습니다.
제어 장치
[Authorize]
public ActionResult Sth()
{
return View("~/Views/Sth/Sth.cshtml", "abc");
}
전망
@model string
@{
ViewBag.Title = "lorem";
Layout = "~/Views/Shared/Default.cshtml";
}
오류 메시지
The view '~/Views/Sth/Sth.cshtml' or its master was not found or no view engine supports the searched locations. The following locations were searched:
~/Views/Sth/Sth.cshtml
~/Views/Sth/abc.master //string model is threated as a possible Layout's name ?
~/Views/Shared/abc.master
~/Views/Sth/abc.cshtml
~/Views/Sth/abc.vbhtml
~/Views/Shared/abc.cshtml
~/Views/Shared/abc.vbhtml
왜 간단한 문자열을 모델로 전달할 수 없습니까?
예, 올바른 과부하를 사용하는 경우 가능합니다 .
return View("~/Views/Sth/Sth.cshtml" /* view name*/,
null /* master name */,
"abc" /* model */);
명명 된 매개 변수를 사용하는 경우 첫 번째 매개 변수를 모두 제공 할 필요가 없습니다.
return View(model:"abc");
또는
return View(viewName:"~/Views/Sth/Sth.cshtml", model:"abc");
또한 목적을 달성 할 것입니다.
이 View
과부하를 의미했습니다 .
protected internal ViewResult View(string viewName, Object model)
MVC는 다음과 같은 과부하로 인해 혼동됩니다.
protected internal ViewResult View(string viewName, string masterName)
이 과부하를 사용하십시오.
protected internal virtual ViewResult View(string viewName, string masterName,
Object model)
이 방법:
return View("~/Views/Sth/Sth.cshtml", null , "abc");
그건 그렇고, 당신은 이것을 사용할 수 있습니다.
return View("Sth", null, "abc");
처음 두 매개 변수에 대해 null을 전달하는 경우에도 작동합니다.
return View(null, null, "abc");
문자열을 객체로 선언하는 경우에도 작동합니다.
object str = "abc";
return View(str);
또는:
return View("abc" as object);
당신은 또한 다음과 같이 씁니다.
return View (model : "msg");
참고 URL : https://stackoverflow.com/questions/9802546/mvc-3-cant-pass-string-as-a-views-model
반응형
'developer tip' 카테고리의 다른 글
rails install pg- 'libpq-fe.h 헤더를 찾을 수 없습니다. (0) | 2020.11.22 |
---|---|
jquery의 버튼 텍스트 토글 (0) | 2020.11.22 |
타임 스탬프로 핑 (0) | 2020.11.22 |
UI없이 활동을 시작하는 방법은 무엇입니까? (0) | 2020.11.22 |
Android의 스피너 배경 디자인 및 색상을 변경하는 방법은 무엇입니까? (0) | 2020.11.22 |