我在MVC中创建了视图页面
<%using (Html.BeginForm())
{ %>
<%=LabelHelpers.Label("firstname", "FirstName:")%>
<br/>
<%=Html.TextBox("firstname")%>
<br/><br/>
<%=LabelHelpers.Label("lastname", "Lastname:")%>
<br/>
<%=Html.TextBox("lastname")%>
<br/><br/>
<input type="Button" value="Register"/>
<%} %>
Run Code Online (Sandbox Code Playgroud)
在这里,我想写Buttonclick事件...我应该怎么写?
Mic*_*ins 12
您的输入属于类型button- 如果没有其他客户端代码,这些操作不会执行任何操作.
如果要以与ASP.NET中相似的方式处理服务器上的"事件",则应将其转换为提交按钮.假设你的控制器被称为"帐户"和你的行动被称为"注册"您目前的代码看起来事情是这样的:
public ViewResult Register()
{
return View();
}
Run Code Online (Sandbox Code Playgroud)
您希望首先将模型传递给视图:
public ViewResult Register()
{
var registerModel = new RegisterModel();
return View(registerModel);
}
Run Code Online (Sandbox Code Playgroud)
您当前的视图使用的是松散类型的输入.由于您传递的是模型,因此可以使用强类型视图.你的模型应该是这样的:
public class RegisterMode
{
public string Firstname { get; set; }
public string Surname { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
要使用强类型视图,请将视图更改为如下所示:
<%using (Html.BeginForm())
{ %>
<%=Html.LabelFor(x => x.Firstname)%>
<br/>
<%=Html.TextBoxFor(x => x.Firstname)%>
<br/><br/>
<%=Html.LabelFor(x => x.Surname)%>
<br/>
<%=Html.TextBoxFor(x => x.Surname)%>
<br/><br/>
<input type="submit" value="Register"/>
<%} %>
Run Code Online (Sandbox Code Playgroud)
我们所做的是告诉视图为RegisterModel类型构建标签和文本框.当您将表单POST到控制器时,这将允许自动映射模型值.
接受帖子,我们需要向控制器添加一个新的Action,名称相同,但接受RegisterModel类型的参数:
public ActionResult Register(RegisterModel model)
{
// do something with the model, such as inserting it into the database.
// model.Firstname will contain the value of the firstname textbox
// model.Surname will contain the value of the surnaem textbox
return RedirectToAction("Success");
}
Run Code Online (Sandbox Code Playgroud)
为安全起见,最后要做的是将控制器操作添加[HttpGet]和[HttpPost]属性以控制它们接受的方法:
[HttpGet]
public ViewResult Register()
Run Code Online (Sandbox Code Playgroud)
和
[HttpPost]
public ActionResult Register(RegisterModel model)
Run Code Online (Sandbox Code Playgroud)
我建议您在http://www.asp.net/mvc上阅读MVC 并阅读Professional MVC中的NerdDinner教程章节(可在线免费获取PDF格式).
| 归档时间: |
|
| 查看次数: |
27688 次 |
| 最近记录: |