在锚标记的视图中调用服务器端方法



我是MVC的新手。我有一个带有一些锚标签的视图,我也想添加一个 onclick。我需要这个 onclick 事件来触发模型中的方法调用。我想在没有任何 ajax 的情况下做到这一点。

我已经尝试过<a onclick="<%Model.Method%>">但这会在我需要它触发点击时触发加载时触发该方法。

如果你想在

不使用Ajax的情况下从java脚本调用该方法,那么你可以使用以下代码来实现它:

查看代码:

<a onclick="testfunc()">clickme</a>

Javascript 代码:

<script type="text/javascript">
    function testfunc() {
        var url = "../Home/About";   //Here it is controllername/ActionName
        window.location.href = url;
    }
</script>

我希望这是你想要的,请让我知道你的想法或反馈

谢谢卡尔西克

接受的答案只是使用 JavaScript 将用户重定向到另一个 URL 或控制器/操作。

一个更好、更像 MVC 的解决方案是简单地在视图中使用 MVC 提供的 UrlHelper 来创建通往所需操作的路由:

<a href="@Url.Action("About", "Home")">clickme</a>

这将导致一个常规链接将用户发送到/Home/About并且根本不需要JavaScript。

Url.Action方法的签名为:

public virtual string Action (string actionName, string controllerName);
请参阅 https://learn.microsoft.com/en-us/dotnet/api/system.web.mvc.urlhelper.action

?view=aspnet-mvc-5.2#system-web-mvc-urlhelper-action(system-string-system-string( 了解其他重载和文档。

我遇到了同样的问题,我能够通过将IActionResult方法(删除(和目录放在双括号中来解决,如下所示

希望这对你有用

最新更新