asp.net - 将 View 模型从 ajax 发送到 Controller

标签 asp.net asp.net-mvc asp.net-mvc-2 asp.net-mvc-3

是否可以在 View 中创建对象并通过 ajax 将其发送到 Controller ?

使用

$.ajax({
              type: "POST", etc....

???
我想发送我在 View 中收到的类型的对象
@model Project1.ViewModels.ModelSample

最佳答案

这是可能的

这是完全(并且很容易)可能的。

复杂的对象呢?

@xixonia 提供了您可能需要的所有信息。但是这些示例相当基本,如果您有某种复杂的对象,可能无法提供信息,例如:

public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }

    public Person Spouse { get; set; }

    public IList<Person> Children { get; set; }
}

任何在其树中具有多于一层属性的对象都被视为复杂对象。在这种情况下,使用 @xixonia 提供的技术将无法正常工作。

因此,如果您也想使用这种场景,我建议您阅读 this blog post它详细描述了整个问题,并提供了一个相当简单的 jQuery 插件,它可以将甚至复杂的对象发送到 Asp.net MVC Controller 操作,这些操作将模型绑定(bind)到您的任何复杂的强类型。

同一博客上的其他帖子也可能会有所帮助:
  • successfully model bind forms to IList<T> action parameters (or within complex type parameters)
  • handling validation errors with Ajax requests

  • 如果您将在 Asp.net MVC 中使用 Ajax,您会发现这些帖子非常有用,并且在遇到此类问题时可以节省您大量的开发时间。

    关于asp.net - 将 View 模型从 ajax 发送到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5724836/

    相关文章:

    .net - 自定义线程在 Application_Start 中启动

    c# - 如何在 ASP .NET 的 configureServices 函数中获取连接字符串

    c# - 如何使用@Html.Raw、ASP.NET、Razor @Helper

    javascript - 无法在代码后面请求 javascript 变量总是返回 ""

    javascript - 通过 Scripts.Render 将自定义属性添加到脚本标记

    c# - 如何实现邀请码与其他用户共享资源?

    c# - 将 Markitup 文本编辑器集成到 ASP.NET MVC 项目中

    c# - 将一个局部 View 数据传递给另一个局部 View

    asp.net-mvc - 子对象上的 ASP.NET MVC 2 模型验证 (DataAnnotations)

    jquery - 制作下拉列表多面板