【问题标题】:ASP.NET MVC Passing model to controller with AJAXASP.NET MVC 使用 AJAX 将模型传递给控制器
【发布时间】:2011-12-16 03:19:36
【问题描述】:

我正在尝试通过 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 "";
    }

【问题讨论】:

    标签: javascript asp.net-mvc ajax


    【解决方案1】:

    确保包含 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 请求将复杂的对象图传递给控制器​​。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-22
      • 1970-01-01
      • 1970-01-01
      • 2014-10-17
      • 1970-01-01
      • 1970-01-01
      • 2016-03-01
      相关资源
      最近更新 更多