正如标题中提到的那样。我从视图中调用控制器方法的最佳方法是什么。ViewBag,HTMLHelper ...?
问问题
831 次
3 回答
0
@Html.ActionLink("LinkText", "ActionName", "ControllerName")
于 2013-07-26T07:19:53.580 回答
0
当用户请求一个页面时,网页首先使用路由找到合适的控制器。然后它完成所有服务器端 C# 代码。然后它填充 html 模板并将 html 发送给用户。您不能从服务器上的视图中调用控制器。但是当视图页面在客户端浏览器上运行时,您可以对服务器进行 ajax 调用,然后将数据发送回控制器
这是示例
http://www.codeproject.com/Articles/41828/JQuery-AJAX-with-ASP-NET-MVC
让我缩小浏览器采取的步骤。
用户请求页面
/首页/索引
- ASP MVC 服务器将请求发送到路由。默认路由在 global.aspx 文件中。
- 路由调用适当的控制器/动作。
- Action 运行服务器代码,并可选择将数据发送到 Views。
- 填写视图模板并将 HTML/css/javascript 发送到客户端。
- 在浏览器上加载页面后或用户单击后,您可以将 ajax 请求发送回服务器
于 2013-07-26T04:55:21.697 回答
0
您只需要将其设为 ActionResult。此外,如果您使用的是 Ajax POST,则需要使用 HttpPost 属性标记该操作。尝试这个:
[HttpPost]
public ActionResult test()
{
return Content("It works");
}
你在 view.cshtml 中添加 javascript 标签。
// Sample Ajax Request.
$.ajax({
url: '@Url.Action("test", "Home")',
data: {dealerID: dealerID},
type: 'POST',
success: function(data) {
alert(data);
}
});
笔记:
- Url.Action 具有控制器/动作参数。应该首先是“ActionName”,然后是“ControllerName”。
- 对于 Url.Action,如果控制器类是“HomeController”,那么您只需要“Home”
- 请求成功时的 JQuery 选项显示警报。-- 应该是成功的:函数(数据){}。
于 2013-07-26T07:16:49.833 回答