나는 우리가 쿼리 문자열을 전달할 수 있다는 쓰기에서 들었 Html.BeginForm()
으므로 이렇게했습니다.
@using (Html.BeginForm("Index", "Home", FormMethod.Post, new { CustomerName = "joydev" }))
하지만 양식을 게시하면 모델 데이터에 매핑되지 않았습니다.
public class MyViewModel
{
public string CustomerName { get; set; }
public List<Movies> movies { get; set; }
public List<Hobbies> hobbies { get; set; }
}
내 행동을 봐
[HttpPost]
public ActionResult Index(MyViewModel oVm, string CustomerName)
{
ViewBag.Message = "Success";
return View(oVm);
}
CustomerName 문자열이 비어 있고 oVm CustomerName
null 인 것을 보았습니다 . CustomerName
쿼리 문자열을 작업 메서드에 전달하지 않는 실수를 어디에서했는지 알려주세요 . 저를 안내 해주세요. 감사
어떤 사람은 :-데이터가 쿼리 문자열로 게시됩니다. 실제로는 In Model, Action Parameter 및 Request.QueryString을 통해 세 가지 방법 모두를 통해 사용할 수 있습니다.
public ActionResult Login(LoginModel model, string returnUrl, string testparam)
{
string additionalParamValueFromQueryString = Request.QueryString["testparam"]; // Method 1
string additionalParamValueFromModel = model.testparam; // Method 2
string additionalParamValue = testparam; // Method 3
}
URL http://forums.asp.net/p/2070398/5975252.aspx?p=True&t=635801707044672469 참조
시도
@using (Html.BeginForm("Index", "Home", new { CustomerName = "joydev" }, FormMethod.Post, null))
BeginForm에 대한 오버로드 목록을 확인합니다 . 당신은 사용하고 있습니다
public static MvcForm BeginForm(
this HtmlHelper htmlHelper,
string actionName,
string controllerName,
FormMethod method,
Object htmlAttributes
)
<form>
태그 의 HtmlAttributes를 변경하여
<form action="Home/Index" CustomerName="joydev" method="POST"
당신은 사용해야합니다
public static MvcForm BeginForm(
this HtmlHelper htmlHelper,
string actionName,
string controllerName,
RouteValueDictionary routeValues,
FormMethod method
)
생성 (및 서버에 값 보내기)
<form action="Home/Index?CustomerName=joydev" method="POST"
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다