javascript - 从 MVC Controller 操作调用 javascript

标签 javascript asp.net-mvc

我可以从 MVC Controller 操作(而不是从 View 页面)调用 javascript 函数并获得返回值吗?怎么办?


我需要像这里一样使用 javascript 从代码 (.cs) 向服务器发出请求(但这是 aspx 页面)

function getInitData() { 
var code; code = 'return {' ;
code += 'me: API.getProfiles({uids: API.getVariable({key: 1280}), fields: "photo"})[0]'; 
code += '};'
VK.Api.call('execute', { 'code': code }, onGetInitData); 
} 

最佳答案

对于那些只使用标准表单提交(非 AJAX)的用户,还有另一种方法可以在您的操作完成时触发一些 Javascript/JQuery 代码。

首先,在您的模型上创建一个字符串属性。

public class MyModel 
{
    public string JavascriptToRun { get; set;}
}

现在,在 View 的 Javascript 中绑定(bind)到新的模型属性:

<script type="text/javascript">
     @Model.JavascriptToRun
</script>

现在,同样在您的 View 中,创建一个 Javascript 函数来执行您需要执行的任何操作:

<script type="text/javascript">
     @Model.JavascriptToRun

     function ShowErrorPopup() {
          alert('Sorry, we could not process your order.');
     }

</script>

最后,在您的 Controller 操作中,您需要调用这个新的 Javascript 函数:

[HttpPost]
public ActionResult PurchaseCart(MyModel model)
{
    // Do something useful
    ...

    if (success == false)
    {
        model.JavascriptToRun= "ShowErrorPopup()";
        return View(model);
    }
    else
        return RedirectToAction("Success");
}

关于javascript - 从 MVC Controller 操作调用 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2709978/

相关文章:

Javascript 函数并返回 JSON

javascript - 正则表达式根据逗号分解字符串 ","

asp.net-mvc - MVC 2 区域注册路由顺序

c# - 使用模拟 Controller 上下文来测试 Controller

c# - 简单的 If/Else Razor 语法

登录请求中未设置 ASP.NET 身份

javascript - 为对象的未定义属性寻找比折叠 if 语句更好的解决方案

javascript - Vue JS 按多个数组对象项进行过滤

javascript - 从 TextInput 获取值并传递给祖 parent 和 child react native

javascript - 我怎样才能改变这个输入的值?