我正试图通过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 "";
}
答案 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请求将复杂对象图传递给控制器。