【问题标题】:Post Viewmodel to controller using jQuery Ajax but model is null使用 jQuery Ajax 将 Viewmodel 发布到控制器,但模型为空
【发布时间】:2016-07-07 12:52:27
【问题描述】:

学生.cs

public class Student
{
    public int StudentId { get; set; }
    public string StudentName { get; set; }        
    public string Class { get; set; }
}

public class StudentViewModel
{
    public Student Student { get; set; }
    public List<string> SelectedClass { get; set; }
    public List<SelectListItem> ClassList { get; set; }
}

我的控制器 StudentController

  public class StudentController : Controller
{
    //
    // GET: /Student/

    public ActionResult Index()
    {
        var student = new Student { 
            StudentId = 1, 
            StudentName = "Himen Suthar"                 };

        var classList = new List<SelectListItem>();
        classList.Add(new SelectListItem {Text  = "Std 8" ,Value = "1"});
        classList.Add(new SelectListItem { Text = "Std 9", Value = "2" });
        classList.Add(new SelectListItem { Text = "Std 10", Value = "3" });

        var viewModel = new StudentViewModel();
        viewModel.Student = student;
        viewModel.ClassList = classList;

        return View(viewModel);
    }


    [HttpPost]
    public ActionResult Index(StudentViewModel model)
    {
        if (ModelState.IsValid)
        { 

        }


        var classList = new List<SelectListItem>();
        classList.Add(new SelectListItem { Text = "Std 8", Value = "1" });
        classList.Add(new SelectListItem { Text = "Std 9", Value = "2" });
        classList.Add(new SelectListItem { Text = "Std 10", Value = "3" });



        model.ClassList = classList;

        return View(model);
    }

}

索引:

我在索引页面上有列表框,当我更改列表框值时,它会将模型发布到控制器,但是我得到视图模型的空值,但模型状态是有效的。请指导表演。

ViewModel 为空:

【问题讨论】:

    标签: jquery ajax null asp.net-mvc-viewmodel


    【解决方案1】:

    为此,您可以参考此链接将模型的值从控制器传递到视图,以便获取数据。
    http://www.codeproject.com/Articles/786604/Passing-data-from-Controller-to-View-in-ASP-NET-MV

    【讨论】:

      【解决方案2】:

      你的 json 有一些问题

      您提供的内容将与此类定义相匹配。注意 Student 是一个集合。也因为封闭的 '[',']' 你实际上有一个 List 进入帖子而不是单个 StudentViewModel。您也无法使用该 json 将类列表映射到 SelectListItem。

      public class Student
      {
          public string StudentId { get; set; }
          public string StudentName { get; set; }
          public string Class { get; set; }
      }
      
      public class ClassList
      {
      }
      
      public class StudentViewModel 
      {
          public List<Student> Student { get; set; }
          public string SelectedClass { get; set; }
          public List<ClassList> ClassList { get; set; }
      }
      

      【讨论】:

        猜你喜欢
        • 2021-09-07
        • 1970-01-01
        • 1970-01-01
        • 2021-02-20
        • 2019-07-17
        • 2015-01-28
        • 2013-03-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多