我是 MVC 的新手,想知道如何在控制器上运行代码而不重定向到另一个页面。
我的观点:
<a href="@Url.Action("DoSomething", "MyController", new { })">
我的控制器:
public void DoSomething()
{
...
}
单击它会运行代码,但随后会将我重定向到空白视图。我怎样才能避免这种情况?
我是 MVC 的新手,想知道如何在控制器上运行代码而不重定向到另一个页面。
我的观点:
<a href="@Url.Action("DoSomething", "MyController", new { })">
我的控制器:
public void DoSomething()
{
...
}
单击它会运行代码,但随后会将我重定向到空白视图。我怎样才能避免这种情况?
您可以通过 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;
});
这将从页面对您的操作进行异步调用。动作的响应将在response
JavaScript 中的回调函数的值中。
编辑:鉴于此链接实际上不是链接,因此还建议它首先不是锚标记。这个标签与上面的 JavaScript 代码结合起来,应该会产生相同的功能:
<span id="doSomething">click here</span>
您可以设置它的样式,使其表现得像 CSS 中的链接:
#doSomething {
cursor: pointer;
text-decoration: underline;
}
或者,您的 CSS 与链接一起运行。