MVC DoSomething()没有重定向

时间:2013-09-13 17:44:14

标签: javascript asp.net-mvc

我是MVC的新手,想知道如何在控制器上运行代码而不重定向到另一个页面。

我的观点:

 <a href="@Url.Action("DoSomething", "MyController",  new {  })">

我的控制器:

public void DoSomething()
{
   ...
}
单击它会运行代码但它会将我重定向到空白视图。我怎么能避免这个?

1 个答案:

答案 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表现为链接。