2017-03-02 57 views
-2

當我通過提交發布數據時,我看到該模型在控制器中爲null。我已經看到這個問題被多次詢問,根本原因是模型屬性名稱和我們在控制器的action參數中使用的名稱之間的名稱衝突。但我的情況並非如此。不知道爲什麼模型是空的。任何幫助表示讚賞。在下面的代碼中,「pm」變量爲空。在HTTP過程中,MVC模型在控制器中爲null Post ASP.NET

檢視:

<div> @Html.LabelFor(model =>model.procedureName)</div> 
<div> @Html.ValidationMessageFor(model => model.procedureName)</div> 
<div>@Html.TextBoxFor(model => model.procedureName)</div> 
<div> @Html.ValidationMessageFor(model => model.ServiceDate)</div> 
<div> @Html.TextBoxFor(model =>model.ServiceDate) </div> 
<div> @using (Html.BeginForm()) 
      { 
      <input type="submit" value="Save Procedure" id="btnPost" /> 
      } 


</div> 

型號:

public partial class MemberProcedure 
{ 
    public int procedureid { get; set; } 
    [Display(Name = "Name")] 
    [Required(ErrorMessage = "Please select a name")] 
    public string procedureName { get; set; } 
    public string updatedbyUserName { get; set; } 
    public Nullable<System.DateTime> LastUpdatetime { get; set; } 
    public Nullable<System.DateTime> Createtime { get; set; } 
    [Required(ErrorMessage = "Please select a service date")] 
    public Nullable<System.DateTime> ServiceDate { get; set; } 
} 

控制器的操作方法:

[HttpPost] 
    public ActionResult Procedure(MemberProcedure pm) 
    { 
     if (ModelState.IsValid) 
     { 

      savedata.... 
     } 
     return View(pm); 
    } 

HTML:

<input id="procedureName" name="procedureName" type="text" value=""> 
<input id="ServiceDate" name="ServiceDate" type="text" value=""> 
+1

您的表單在所有輸入之後出現。您的輸入需要包含在表單中。 – Fran

+1

*所有*您的控件需要進入'Html.BeginForm()',而不僅僅是提交按鈕。 –

+1

爲什麼你不把控件放在窗體標籤中?它不會以這種方式設置類對象的屬性。 –

回答

1

在我看來,你所有的輸入元素都在你的表單標籤之外。試試這個:

<div> 
@using (Html.BeginForm()) 
{ 
    <div>@Html.LabelFor(model =>model.procedureName)</div> 
    <div>@Html.ValidationMessageFor(model => model.procedureName)</div> 
    <div>@Html.TextBoxFor(model => model.procedureName)</div> 
    <div>@Html.ValidationMessageFor(model => model.ServiceDate)</div> 
    <div>@Html.TextBoxFor(model =>model.ServiceDate) </div> 

    <input type="submit" value="Save Procedure" id="btnPost" /> 
} 
</div> 

使用表單標籤之外的元素,它們永遠不會被提交。

希望有所幫助。

0

您的表單在所有輸入之後出現。您的輸入需要包含在表單中。

@using (Html.BeginForm()) 
{  
    <div>@Html.LabelFor(model =>model.procedureName)</div> 
    <div>@Html.ValidationMessageFor(model => model.procedureName)</div> 
    <div>@Html.TextBoxFor(model => model.procedureName)</div> 
    <div>@Html.ValidationMessageFor(model => model.ServiceDate)</div> 
    <div>@Html.TextBoxFor(model =>model.ServiceDate)</div> 
    <div><input type="submit" value="Save Procedure" id="btnPost" /></div>  
} 
相關問題