我正在使用C#和SQL Server 2005开发ASP .Net MVC 3应用程序。
我也在使用Entity Framework和Code First Method。
在视图Index
中,我有一个DropDownList Gamme
。我定义了在我的视图中选择的项目,如下所示:
public string SelectedProfile_Ga { get; set; }
在此视图中,我有一个按钮Appliquer
,它将我带到另一个视图Application
。
<input type="button" value="Appliquer" id="appliquer" onclick="window.location = 'ProfileGa/Application'"/>
在视图Application
中,我有一个按钮提交Appliquer
。
<input type="submit" value="Appliquer" id="appl" />
当我点击Appliquer
时,我希望在我的基础中保存我的DropDownList Gamme
中选择的值。
问题是当我更改视图(退出页面索引并打开应用程序)时,此值将传递NULL
。
我通过调试找到了。
Controller行动:
[HttpPost]
public ActionResult app(FlowViewModel model)
{
Famille fam = new Famille();
fam.ID_Gamme = model.SelectedProfile_Ga;
db.Familles.Add(fam);
db.SaveChanges();
return RedirectToAction("Application");
}
注意:
我在Application
:
<% using (Html.BeginForm("app", "ProfileGa")) { %>
ProfileGa
是我的控制器的名称。
答案 0 :(得分:1)
对于初学者,您的下拉列表位于Index
视图中,并且选择正在那里进行。然后,您将重定向到ProfileGa/Application
并留下此信息。
我会改变这个按钮:
<input type="button" value="Appliquer" .. etc
到<submit>
,然后用以下其中一个的下拉包装代码:
using (Html.BeginForm("Application", "ProfileGa")) {
并添加Post
版本Application
[HttpPost]
public ActionResult Application(FlowViewModel model)
{
// Do whatever
return View(model);
}
然后,当您转到Application
视图时,它应该仍然具有与Index
一样的信息。
要检查这是否有效,请在return View(model);
处设置断点并查看模型的内容。
但是,从视图发布null
可能意味着您的<% using (Html.BeginForm("app", "ProfileGa")) { %>
语句中存在错误,因此如果上述操作无效,请发布以下代码:你的“申请”视图。