我正在學習ASP.NET MVC 5.我創建了一個視圖「創建」。但我沒有使用Razor來生成輸入字段,我使用純html輸入。HttpPost後填充字段創建 - 對象爲空使用輸入
Create.cshtml
@model MyProject.Product
<h2>Create Product</h2>
<form method="post">
Description: <br />
<input type="text" name="Description" id="Description"/> <br />
ValueType: <br />
<input type="text" name="ValueType" id="ValueType"/>
<br />
<input type="submit" name="btSend"/>
</form>
我的控制器:
public ActionResult Create()
{
return View();
}
[HttpPost]
public ActionResult Create(Product product)
{
if (ModelState.IsValid)
{
db.Product.Add(product);
db.SaveChanges();
return RedirectToAction("Index");
}
else
{
return View(product);
}
It works fine. I can create new products.
但我需要使用一些服務器端驗證與模型註解。 因此,我想發送數據,如果模型無效,請返回使用值創建。我知道如何把驗證信息。所以,我試過這個:
@model MyProject.Product
<h2>Create Product</h2>
<form method="post">
Description: <br />
<input type="text" name="Description" id="Description" value="@Model.Description"/> <br />
ValueType: <br />
<input type="text" name="ValueType" id="ValueType" value="@Model.ValueType"/>
<br />
<input type="submit" name="btSend"/>
</form>
如何將純輸入與html綁定到模型?
爲什麼爲空值?
非常感謝。
爲什麼在世界上你不使用剃刀?使用@ Html.LabelFor()','@ Html.TextBoxFor()'和@ Html.ValidationMessageFor()'生成你正確的控件形式,然後查看它生成的所有html,並將它與你的比較,這意味着你沒有雙向模型綁定,也沒有驗證 –
因爲我和前端開發人員一起工作,他們給了我創建的html。我想知道是否有辦法處理輸入類型。如何綁定它? – ComplexityAlg
使用'HtmlHelper'方法將爲您提供正確的html,這對於雙向模型綁定和驗證是必需的。 '@ Model.Description'是剃鬚刀代碼,所以毫無疑問你不想使用剃鬚刀 –