MVC html开始表单返回JavaScript操作结果

MVC html begin form return JavaScript Action result

本文关键字:JavaScript 操作 结果 返回 表单 html 开始 MVC      更新时间:2023-09-26

在视图中,我有以下代码:

<div class="row">
    @Using (Html.BeginForm("myFn", "myCntl", FormMethod.Post))
        @<div>
            <input type="submit" value="Do" class="btn btn-primary" />
        </div>
    End Using
</div>

在控制器中,这个代码:

Function myFn() As ActionResult
     Return JavaScript("alert('hello')")
End FUnction

我在浏览器中看不到警报,但它已打印在窗口中
如何使代码可执行?

JavascriptResult只有在从AJAX调用时才有效。所以你必须把你的代码改成这样。

@using (Ajax.BeginForm("myFn", "myCntl", new AjaxOptions() { HttpMethod="POST" }))
{
    <div>
        <input type="submit" value="Do" class="btn btn-primary" />
    </div>
}
[HttpPost]
public ActionResult myFn()
{
    return JavaScript("alert('hello')");
}

顺便说一句,有更好的方法可以通过客户端的部分视图或简单的javascript来处理类似的事情。JavascriptResult确实是一个糟糕的模式。