在mvc中,页面不会像在asp.net中那样回复,那么我们如何在asp.net mvc2中执行回发操作。为什么当有人选择一个chech box时如何执行特定的动作? 在此先感谢
答案 0 :(得分:6)
WebForms中回发模型背后的机制称为HTTP POST。这是用户输入传送回服务器的方式。
您可以手动执行此操作。手动将JavaScript处理程序附加到复选框“onclick”事件,并对某个URL执行POST请求。在那里,此请求将在您执行所需操作时执行某些控制器操作。例如,更新模型(选中/取消选中该复选框)并返回POST发起的相同视图。该视图现在将显示该复选框的不同状态。
WebForms机制几乎完全相同,尽管这些东西都是从你身上抽象出来的。使用ASP.NET MVC,您需要学习如何自己完成(这总是一件好事)。
答案 1 :(得分:3)
你的Controller上的MVC Action方法有点像你的'PostBack'处理程序。
从一个更简单的例子开始;一个简单的HTML表单帖子:
<form action="/MyController/MyAction" method="post">
<input type="text" name="myName" />
<input type="submit />
</form>
现在,在您的控制器操作中,您可以获取已发布的值并执行任务。完成后,为浏览器提供所需内容:
public class MyController: Controller
{
public ActionResult MyAction(string myName)
{
// Do something with myName
return new ContentResult { Content = "Hello " + myName };
}
}
对于复选框,它是不同的。你需要学习Javascript(jQuery是最常用的库)并使用它发布动作。例如,您可以连接到复选框'onclick()' event并执行XHR - 浏览器特定的Javascript操作,post (you can use jQuery for that too)到您的控制器。
因此,您需要开始以不同于webforms抽象的方式进行思考,并参与HTML,HTTP和Javascript。
答案 2 :(得分:0)
你可以将它放在MVC Razor页面中:
if (Request.HttpMethod=="POST") {
}