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

时间:2011-10-26 23:15:54

标签: javascript asp.net-mvc ajax

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

我已经看过Laviak在下面的问题中提供的答案,但是无法让它发挥作用。

Possible Answer

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

1 个答案:

答案 0 :(得分:3)

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

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

另外,我建议您查看following article,其中说明了如何使用JSON AJAX请求将复杂对象图传​​递给控制器​​。