MVC模型在帖子上为空?c#

时间:2017-08-10 11:45:38

标签: c# asp.net asp.net-mvc asp.net-mvc-4

我的GNController视图代码

     public ActionResult Index()
    {
        if (Session["pUser_Name"] == null)
        {
            return RedirectToAction("Login", "Login");
        }
        ViewBag.pUser_Name = Session["pUser_Name"].ToString();


        DataSet ds_1 = Fill_Combo();

        ADO_Net_MVC.Models.GN.GN clsObj = new Models.GN.GN();
        clsObj.Branch_SName = GENERIC.ToSelectList(ds_1.Tables[0], "Branch_SName", "Branch_Code");

        clsObj.Branch_FY = GENERIC.ToSelectList(ds_1.Tables[1], "FY", "FYDates");
        Session["pLast_IPAddress"] = ds_1.Tables[3].Rows[0]["User_IP"].ToString();
        clsObj.Branch_DeptD = GENERIC.ToSelectList(ds_1.Tables[4], "Dept_DD", "Dept_ID");
        return View(clsObj);
    }

视图绑定为

@model ADO_Net_MVC.Models.GN.GN

@using (Html.BeginForm())
{
@Html.ValidationSummary(true)

 <div class="editor-field">

  @Html.DropDownList("cmbLocation", Model.Branch_SName)
   </div>
 @*    fill all drop down *@

  <input value="Continue" id="cmd_continue" class="btnBG_Green" type="submit"   tabindex="4" />

在发布请求时,模型是空的,我想要所有下拉选择值和文本字段

 [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Index(ADO_Net_MVC.Models.GN.GN model)
    {

     return View(model);
   } 

这是模型

   public class GN
{

    public SelectList Branch_SName { get; set; }
    public SelectList Branch_DeptD { get; set; }
    public SelectList Branch_AcdYear { get; set; }
    public SelectList Branch_FY { get; set; }


}

任何人都可以告诉我为什么模型为空并且我想获得选择的feild值和文本如何?

2 个答案:

答案 0 :(得分:1)

我只会在第一次下拉时显示。你适用于所有人。您需要在模型中添加一些属性。

public class GN
{
    public SelectList Branch_SName { get; set; }
    public string SelectedBranchName {get;set; }
}

在视图中

@Html.DropDownListFor(m => m.SelectedBranchName , Model.Branch_SName)

多数民众赞成!

答案 1 :(得分:0)

您的模型需要包含可以映射到表单中输入名称的属性。最简单的方法是使用辅助方法,如Html.DropDownListFor和Html.TextBoxFor。

对于您的选择,您需要模型上的属性,该属性将存储所选的值,例如

public string CmbLocation { get; set; }

然后在您的视图中,您可以使用:

@Html.DropDownListFor(m => m.CmbLocation, Model.Branch_SName)

现在,当您发布表单时,您应该看到绑定到模型的下拉列表的值。