我是MVC的新手,想知道如何在控制器上运行代码而不重定向到另一个页面。
我的观点:
<a href="@Url.Action("DoSomething", "MyController", new { })">
我的控制器:
public void DoSomething()
{
...
}
单击它会运行代码但它会将我重定向到空白视图。我怎么能避免这个?
答案 0 :(得分:1)
您可以通过AJAX请求调用操作。像这样:
<a id="doSomething" href="#">click here</a>
在JavaScript代码中(使用jQuery,因为默认情况下它应该在你的MVC项目中可用):
$('#doSomething').click(function () {
$.get('@Url.Action("DoSomething", "MyController", new { })', function(response) {
// do something with the response?
});
return false;
});
这将从页面到您的操作进行异步调用。该操作的响应将位于JavaScript中回调函数的response
值。
编辑:鉴于此链接实际上是一个链接,建议它首先不是锚标记。此标记与上述JavaScript代码相结合,应具有相同的功能:
<span id="doSomething">click here</span>
您可以将其设置为类似CSS中的链接:
#doSomething {
cursor: pointer;
text-decoration: underline;
}
或者你的CSS表现为链接。