|
實(shí)現(xiàn)一個(gè)簡(jiǎn)單的驗(yàn)證(C#)
本部分主要目的是說明如何在ASP.NET MVC應(yīng)用程序中實(shí)現(xiàn)驗(yàn)證。例如,將了解如何驗(yàn)證一個(gè)表單提交時(shí)必填內(nèi)容的合法性。了解如何應(yīng)用model state和驗(yàn)證相關(guān)的HTML helpers。
理解Model State
你使用model state,更準(zhǔn)確點(diǎn)說是使用model state 字典去表示驗(yàn)證錯(cuò)誤。比如,列表一中的Create()方法,在產(chǎn)品類保存入庫(kù)之前去驗(yàn)證產(chǎn)品類的屬性。
把驗(yàn)證和數(shù)據(jù)邏輯加到控制類中是違反編程方法的,控制類中應(yīng)該僅包含程序的流程邏輯。此處是為了便于說明才這樣寫的。
列表1---Controllers/ProductController.cs

//
// POST: /Product/Create
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create([Bind(Exclude="Id")] Product productToCreate)
{
// Validation logic
if (productToCreate.Name.Trim().Length == 0)
ModelState.AddModelError("Name", "Name is required.");
if (productToCreate.Description.Trim().Length == 0)
ModelState.AddModelError("Description", "Description is required.");
if (productToCreate.UnitsInStock < 0)
ModelState.AddModelError("UnitsInStock", "Units in stock cannot be less than zero.");
if (!ModelState.IsValid)
return View();
// Database logic
try
{
_entities.AddToProductSet(productToCreate);
_entities.SaveChanges();
return RedirectToAction("Index");
}
catch
{
return View();
}
}
NET技術(shù):ASP.NET MVC 驗(yàn)證方式(1),轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。