在一个 MVC4 项目中,我使用了一个使用 ViewModel 的部分视图,并且上面有一个 GET 表单。在 Controller 操作中,我希望 ViewModel 对象带有一些数据。当此部分放置在普通 (.cshtml) 视图上时,我通过 Controller 操作中的预期 ViewModel 对象接收数据。但是,当这个部分被放置在另一个部分视图上时,由于某种原因,控制器操作中的 ViewModel 对象是空的。当我逐步创建 HttpGet-form 时,传入的模型不是空的,但是当调用 GET 控制器操作时,模型是。
有谁知道这是什么原因?这是我不知道的一些 MVC 行为吗?谢谢!
部分:
@model ViewModel
@if (Model != null)
{
using (Html.BeginForm("DoSomething", "Home", FormMethod.Get))
{
@Html.HiddenFor(m => m.Object)
<input id="btnSend" type="submit">
}
}
另一部分:
@using OtherViewModel.ViewModel
@Html.Partial("The Partial", Model.ViewModel, ViewData)
风景:
@Html.Partial("_TheOtherPartial", Model.OtherViewModel, new ViewDataDictionary(ViewData) {
TemplateInfo = new System.Web.Mvc.TemplateInfo { HtmlFieldPrefix = "prefix" }
})
控制器
[HttpGet]
[AllowAnonymous]
public ActionResult DoSomething(ViewModel data)
{
}