我试图通过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 ""; }
确保MODEL在主文件中定义变量的脚本之后包含了包含AJAX调用的javascript 文件:
MODEL
<script type="test/javascript"> var MODEL = '<%= Model.ToJson() %>'; </script> <script type="text/javascript" src="<%= Url.Content("~/scripts/myscript.js") %>"></script>
另外,我建议您阅读以下文章,该文章说明了如何使用JSON AJAX请求将复杂的对象图传递给控制器。