一尘不染

ASP.NET MVC使用AJAX将模型传递给控制器

ajax

我试图通过ajax调用将模型传递给控制器​​。

我已经看过Laviak在以下问题中提供的答案,但无法使其正常工作。

运行ajax调用时,MODEL变量出现未定义的错误。我已经确认正在调用助手类,并且正在返回字符串。是否因为AJAX调用位于.js文件中?为什么未定义?

我的代码:

Site.Master:

<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 "";
    }

阅读 230

收藏
2020-07-26

共1个答案

一尘不染

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

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

另外,我建议您阅读以下文章,该文章说明了如何使用JSON AJAX请求将复杂的对象图传递给控制器​​。

2020-07-26