-1

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

我的观点:

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

我的控制器:

public void DoSomething()
{
   ...
}

单击它会运行代码,但随后会将我重定向到空白视图。我怎样才能避免这种情况?

4

1 回答 1

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;
});

这将从页面对您的操作进行异步调用。动作的响应将在responseJavaScript 中的回调函数的值中。

编辑:鉴于此链接实际上不是链接,因此还建议它首先不是锚标记。这个标签与上面的 JavaScript 代码结合起来,应该会产生相同的功能:

<span id="doSomething">click here</span>

您可以设置它的样式,使其表现得像 CSS 中的链接:

#doSomething {
    cursor: pointer;
    text-decoration: underline;
}

或者,您的 CSS 与链接一起运行。

于 2013-09-13T17:48:58.137 回答