我正在尝试通过 ajax 调用将模型传递到我的 Controller 。
我查看了拉维亚克在以下问题中提供的答案,但无法使其发挥作用。
当 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/