在ASP MVC 3中,值从View传递给另一个NULL

时间:2013-05-30 09:14:10

标签: c# visual-studio-2010 asp.net-mvc-3

我正在使用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是我的控制器的名称。

1 个答案:

答案 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")) { %>语句中存在错误,因此如果上述操作无效,请发布以下代码:你的“申请”视图。