0

我正在使用 C# 和 SQL Server 2005 开发一个 ASP .Net MVC 3 应用程序。

我也在使用实体框架和代码优先方法。

在一个视图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问题是当我更改视图(退出页面索引并打开应用程序)时传递了这个值。

我在调试中发现了这一点。

控制器动作:

[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是我的控制器的名称。

4

1 回答 1

1

对于初学者,您的下拉菜单在Index视图中,并且选择正在那里进行。然后,您将重定向到ProfileGa/Application并留下此信息。

我会改变这个按钮:

<input type="button" value="Appliquer" .. etc

到 a <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")) { %>声明中有问题,所以如果上面没有做任何事情,请从您的“应用程序”视图发布代码。

于 2013-05-30T10:24:14.183 回答