ASP.NET MVC(Model-View-Controller)是一種開(kāi)發(fā)Web應(yīng)用程序的框架,它提供了一種模式來(lái)管理應(yīng)用程序的邏輯和用戶界面。在MVC模式中,用戶與視圖交互并提交表單數(shù)據(jù),控制器接收和處理這些數(shù)據(jù),模型負(fù)責(zé)處理業(yè)務(wù)邏輯和數(shù)據(jù)交互。
例如,假設(shè)我們正在開(kāi)發(fā)一個(gè)簡(jiǎn)單的聯(lián)系人管理應(yīng)用程序。我們需要一個(gè)頁(yè)面來(lái)創(chuàng)建新的聯(lián)系人,并在提交表單后將其保存到數(shù)據(jù)庫(kù)中。在ASP.NET MVC 2中,我們可以使用表單標(biāo)簽助手(HtmlHelper)來(lái)生成HTML表單,并使用控制器的動(dòng)作方法來(lái)處理提交的數(shù)據(jù)。
我們首先創(chuàng)建一個(gè)Contact模型,它包含聯(lián)系人的相關(guān)信息,如姓名、電子郵件和電話號(hào)碼。然后,我們創(chuàng)建一個(gè)控制器類,其中包含一個(gè)動(dòng)作方法來(lái)處理提交表單的請(qǐng)求。該方法接收Contact對(duì)象作為參數(shù),并將其保存到數(shù)據(jù)庫(kù)中。最后,我們創(chuàng)建一個(gè)視圖來(lái)顯示表單并允許用戶輸入聯(lián)系人信息。
下面是示例代碼:
```
// Contact模型類
public class Contact
{
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public string PhoneNumber { get; set; }
}
// Contact控制器類
public class ContactController : Controller
{
// 用于顯示創(chuàng)建聯(lián)系人的表單
public ActionResult Create()
{
return View();
}
// 處理提交表單的請(qǐng)求
[HttpPost]
public ActionResult Create(Contact contact)
{
// 將聯(lián)系人保存到數(shù)據(jù)庫(kù)
// ...
return RedirectToAction("Index", "Home");
}
}
// Create視圖
@model Contact
創(chuàng)建新聯(lián)系人
@using (Html.BeginForm("Create", "Contact", FormMethod.Post)) {@Html.LabelFor(m =>m.Name) @Html.TextBoxFor(m =>m.Name)
@Html.LabelFor(m =>m.Email) @Html.TextBoxFor(m =>m.Email)
@Html.LabelFor(m =>m.PhoneNumber) @Html.TextBoxFor(m =>m.PhoneNumber)
} ``` 在上面的示例中,當(dāng)用戶訪問(wèn)聯(lián)系人的創(chuàng)建頁(yè)面時(shí),控制器的Create動(dòng)作方法返回一個(gè)Create視圖。這個(gè)視圖使用Html.BeginForm方法生成一個(gè)包含動(dòng)作方法路徑的HTML表單。 當(dāng)用戶在表單中輸入聯(lián)系人信息并點(diǎn)擊保存按鈕時(shí),表單將被提交到控制器的Create動(dòng)作方法。因?yàn)槲覀冊(cè)趧?dòng)作方法上使用了HttpPost特性,只有HTTP POST請(qǐng)求才會(huì)調(diào)用這個(gè)方法。 動(dòng)作方法的參數(shù)是一個(gè)Contact對(duì)象,它通過(guò)模型綁定機(jī)制自動(dòng)填充表單中的輸入值。我們可以在動(dòng)作方法中執(zhí)行一些業(yè)務(wù)邏輯,例如將聯(lián)系人保存到數(shù)據(jù)庫(kù)。在示例中,我們簡(jiǎn)單地將其省略了。 最后,我們使用RedirectToAction方法將用戶重定向到主頁(yè)。這可以是任何其他頁(yè)面,根據(jù)實(shí)際應(yīng)用程序需求進(jìn)行配置。 綜上所述,使用ASP.NET MVC 2提交表單是一個(gè)簡(jiǎn)單而直接的過(guò)程。通過(guò)使用HtmlHelper生成表單并在控制器中處理提交的數(shù)據(jù),我們可以輕松地實(shí)現(xiàn)用戶界面和業(yè)務(wù)邏輯之間的交互。這種方式使代碼易于維護(hù)和擴(kuò)展,并提供了更好的可測(cè)試性。