MVC html开始表单返回JavaScript Action结果

时间:2014-09-04 13:27:18

标签: javascript asp.net-mvc vb.net asp.net-mvc-5

在视图中我有这段代码:

<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

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

1 个答案:

答案 0 :(得分:0)

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实际上是一种糟糕的模式。