当前位置: 首页 > 面试题库 >

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

仰雅昶
2023-03-14
问题内容

我试图通过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 文件:

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

另外,我建议您阅读以下文章,该文章说明了如何使用JSON AJAX请求将复杂的对象图传递给控制器​​。



 类似资料:
  • 问题内容: 如何将ID从此Ajax调用传递给TestController getAjax()函数?当我打电话时,网址是testUrl?id = 1 TestController.php 问题答案: 最后,我只是将参数添加到Route :: get()以及ajax url调用中。我在getAjax()函数中将$ _POST [‘id’]更改为$ _GET [‘id’],这使我的回复 TestCont

  • 问题内容: 我正在尝试使用JQuery Ajax将表单的数据传递到我的控制器方法,但是由于在Controller Side上使用调试器时ViewModel为null,因此我不确定如何执行此操作。 我的ViewModel是: 前提是我数据库中的实体/表。 该表单包含“前提”表中的字段。 在我的javascript函数中,我这样做: 但是,当我在方法中检查viewModel参数时,它为null: 关于

  • 问题内容: 我想将一个对象传递给控制器​​,并在控制器中检索值。我定义如下: HTML代码: Javascript: 但是我无法在控制器中检索值。它越来越空。 问题答案: 尝试以下操作:-您正在传递对象数组,因此您应该执行HTTPPost而不是HttpGet(这将适用于通过查询字符串发送它的原始类型数组,例如int,strgin等列表)(请记住查询字符串的限制)。尝试使用HTTPPost

  • 我正在开发一个独立的应用程序,我正在尝试使用下面的代码将一个字符串传递给Spring控制器,该字符串是更改事件的输出 HTML代码 控制器代码 我在浏览器控制台中收到一个错误“加载资源失败:服务器响应状态为404()”。 帮助我将字符串“changed”传递给控制器。 我正在使用这些依赖关系 jQuery从"org.webjars", Spring-启动-启动器-执行器, spring-boot-

  • 问题内容: 是否需要包装支持对象?我想做这个: 并使用这样的JSON: 但是我必须使用: 然后使用以下JSON: 那是对的吗?我的另一种选择是将更RequestMethod改为GET并@RequestParam在查询字符串中使用或@PathVariable与一起使用RequestMethod。 问题答案: 你是正确的,@ RequestBody带注释的参数应该可以容纳请求的整个内容并绑定到一个对象

  • 问题内容: 我有一个视图,允许用户输入/编辑新窗口小部件的数据。我想将这些数据组成一个json对象,然后通过AJAX将其发送到我的控制器,这样我就可以在服务器上进行验证而无需回发。 我已经完成了所有工作,但是我无法弄清楚如何传递数据,因此我的控制器方法可以接受复杂的Widget类型,而不是每个属性的单个参数。 因此,如果这是我的对象: 我希望我的控制器方法看起来像这样: 目前,我的jQuery如下