這就像在這裏的MVC 101,所以我覺得完全無助,爲什麼這不起作用。我有一個非常基本的型號:MVC文本框的名字指定不綁定模型在崗位
public class StockEnrollmentModel
{
[Required]
[DisplayName("Employee Name:")]
public string EmployeeName { get; set; }
}
我的看法是這樣的:
@using (Html.BeginForm("SimulateForm", "HR", FormMethod.Post))
{
<div class="row">
<div class="col-md-6">
<div class="form-group">
@Html.LabelFor(e => e.EmployeeName)
@Html.TextBox("stock_employee_name", Model.EmployeeName)
</div>
</div>
</div>
<button type="submit" class="btn btn-primary" value="Submit">Submit</button>
}
Web服務,我將張貼到需要輸入領域的具體名稱,以便成功地接收數據
作爲,呈現的HTML需要閱讀:
<input type="stock_employee_name" type="text" />
經過大量的搜索,我確定我需要使用Html.Text框來控制生成的name屬性。
我遇到的問題是,當我提交表單時,我的控制器中的模型完全沒有數據。調查這顯示錶單發佈到服務器與「employee_stock_name =某個名稱」而不是「EmployeeName =某個名稱」
從我的研究,這不應該發生,正確??這種確切的情況應該是您使用TextBox而不是TextBoxFor的原因。
我錯過了什麼?
這裏是我的什麼它的價值控制器:
[HttpPost]
public RedirectToRouteResult SimulateForm(StockEnrollmentModel model)
{
if (ModelState.IsValid)
{
return RedirectToAction("SignForm", "HR", model);
}
return RedirectToAction("StockPurchase", model);
}
UPDATE
下接受的答案是什麼,我終於結束了使用。沒有真正的方法來輕鬆更改HTML字段的名稱並保持MVC模型綁定。我最終改變了我的屬性名稱以匹配我需要的名稱字段來讀取。
您是否嘗試過使用'@ Html.TextBoxFor'而不是'@ Html.TextBox'與自定義ID? – pasty
我沒有,但如前所述,我要發佈的web服務要求名稱字段具有指定的值 – Icestorm0141
作爲初始值或不應更改的值? – pasty