javascript - ASP.NET MVC 使用 AJAX 将模型传递给 Controller

标签 javascript asp.net-mvc ajax

我正在尝试通过 ajax 调用将模型传递到我的 Controller 。

我查看了拉维亚克在以下问题中提供的答案,但无法使其发挥作用。

Possible Answer

当 ajax 调用运行时,我收到 MODEL 变量未定义的错误。我已经确认正在调用辅助类并返回一个字符串。是因为 AJAX 调用位于 .js 文件内吗?为什么它是未定义的?

我的代码:

站点管理员:​​

<script type="test/javascript">   
    var MODEL = '<%= Model.ToJson() %>';
</script>

帮助类:

public static string ToJson(this Object obj) 
    {
        string model = new JavaScriptSerializer().Serialize(obj);
        return model; 
    } 

Javascript 文件:

    var GstTotal = $.ajax(
{
    type: 'POST',
    async: false,
    url: BASE_APP_URL + 'WashTicket/GetTaxTotal',
    traditional: true, //This setting is required to pass arrays to the Controller
    //        data: MODEL
    data: {
        aModel: MODEL
    }
}).responseText;

操作方法:

        public string GetTaxTotal(string aModel)
    {

        return "";
    }

最佳答案

确保包含 AJAX 调用的 javascript 文件包含在主文件中定义 MODEL 变量的脚本之后:

<script type="test/javascript">   
    var MODEL = '<%= Model.ToJson() %>';
</script>
<script type="text/javascript" src="<%= Url.Content("~/scripts/myscript.js") %>"></script>

此外,我建议您查看 following article它说明了如何使用 JSON AJAX 请求将复杂的对象图传递到 Controller 。

关于javascript - ASP.NET MVC 使用 AJAX 将模型传递给 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7910033/

相关文章:

javascript - 如何将 JQuery 导入 Typescript 文件?

asp.net-mvc - Ninject 与 Unity 的 DI

asp.net-mvc - 为什么我的完整 View 模型没有被 ApiController 序列化?

jquery - 在 ASP.NET MVC 5 中使用 Jquery-Ajax 单击删除按钮来删除每一行

javascript - 单击href后jquery将图像加载到div

ajax - 当我专门指定要替换的ID时,为什么我的Ajax.BeginForm重新加载整个页面?

javascript - JavaScript中的箭头函数

javascript - 激活服务器时间上的单选按钮

javascript - jQuery onclick 事件为打开 View 页面添加动态选项卡

javascript - styled-components 不重新设计组件