Asp.net mvc 4 ASP.NETMVC:FormPOST时,一个视图模型属性变为null
我有一个简单的表单,其中有一个下拉列表和一个提交按钮。我有两个索引函数,一个用于get,一个用于formpost。当我从下拉列表中选择一个产品并单击submit按钮时,我的索引操作得到调用,但在那里我注意到我的products属性得到null。请看我的密码,告诉我哪里出错了 视图代码 模型代码 控制器代码 当我调试第二个操作时,我看到vm products属性变为null 请告诉我我在哪里犯的错误 谢谢@Mou 请修改您的razor视图并尝试此操作。 在Razor视图中,您没有指定Http verbGet、PostAsp.net mvc 4 ASP.NETMVC:FormPOST时,一个视图模型属性变为null,asp.net-mvc-4,Asp.net Mvc 4,我有一个简单的表单,其中有一个下拉列表和一个提交按钮。我有两个索引函数,一个用于get,一个用于formpost。当我从下拉列表中选择一个产品并单击submit按钮时,我的索引操作得到调用,但在那里我注意到我的products属性得到null。请看我的密码,告诉我哪里出错了 视图代码 模型代码 控制器代码 当我调试第二个操作时,我看到vm products属性变为null 请告诉我我在哪里犯的错误 谢谢@Mou 请修改您的razor视图并尝试此操作。 在Razor视图中,您没有指定Http ve
@using (Html.BeginForm("Index", "TestVal", FormMethod.Post)
您没有犯任何错误,您没有得到产品列表,因为您没有将它们包含在HTML输入表单中 如果要包括产品列表,可以在输入表单中添加以下内容
@for (int i = 0; i < Model.Products.Count(); i++)
{
<div>
@Html.HiddenFor(model => Model.Products[i].Name)
@Html.HiddenFor(model => Model.Products[i].ID)
</div>
}
vm products属性仍然为null。
public class TestValController : Controller
{
// GET: TestVal
public ActionResult Index()
{
var SampleVM = new SampleViewModel();
SampleVM.Products = new List<Product>
{
new Product{ ID=1, Name="IPhone" },
new Product{ ID=2, Name="MacBook Pro" },
new Product{ ID=3, Name="iPod" }
};
return View(SampleVM);
}
[HttpPost]
public ActionResult Index(SampleViewModel vm)
{
var SampleVM = new SampleViewModel();
SampleVM.Products = new List<Product>
{
new Product{ ID=1, Name="IPhone" },
new Product{ ID=2, Name="MacBook Pro" },
new Product{ ID=3, Name="iPod" }
};
if (ModelState.IsValid)
return View(vm);
else
return View(SampleVM);
}
}
@using (Html.BeginForm("Index", "TestVal", FormMethod.Post)
@for (int i = 0; i < Model.Products.Count(); i++)
{
<div>
@Html.HiddenFor(model => Model.Products[i].Name)
@Html.HiddenFor(model => Model.Products[i].ID)
</div>
}