我也应该在MVC 5中在POST中绑定html.dropdownlistfor吗?

维尼思·玻利蒂

这是我的

[Authorize]
public ActionResult SendMessage()
{
    var model = new MessageModel();
    var subjects = this.GetDistributionLists();
    if (subjects != null) {
        ViewBag.Subjects = new SelectList(subjects, "Value", "Text");
    }
    //Get patients list
    var patients = this.GetPatientsList();
    if (patients != null)
    {
        ViewBag.Patients = new SelectList(patients, "Value", "Text");
    }
    if (Request.IsAjaxRequest())
    {
        return PartialView("SendMessagePartial");
    }
    else
    {
        return View();
    }
}

这是我的帖子

[HttpPost]
[Authorize]
public ActionResult SendMessage(MessageModel model)
{
    try {
      if (ModelState.IsValid)
      {
          XmlDocument requestXml = XmlUtil.CreateRequestDocument("message", new
          {
              Message = model.MessageBody,
              Type = model.Subject,
              PatientID = model.PatientId,
              RecipientID = model.RecipientId,
              IsUrgent = model.IsUrgent ? "1" : "0"
          });
        //save message logic here
      }
    }
    catch (Exception ex)
    {
        ModelState.AddModelError("ServerMessage", ex.Message);
    }
    if (Request.IsAjaxRequest())
    {
        return PartialView("SendMessagePartial", model);
    }
    else
    {
        return View(model);
    }
}

这是我的模特

public class MessageModel
{
    [DisplayName("RecipientId")]
    public int RecipientId { get; set; }

    [DisplayName("Sender")]
    [StringLength(255)]
    public string Sender { get; set; }

    [DisplayName("SenderId")]
    public int SenderId { get; set; }

    [DisplayName("Message")]
    [StringLength(4000)]
    [Required]
    public string MessageBody { get; set; }

    [DisplayName("Subject")]
    [StringLength(255)]
    [Required]
    public string Subject { get; set; }

    [DisplayName("Patient")]
    [Required]
    public int PatientId { get; set; }

    public bool IsUrgent { get; set; }
}

我的视图有一个下拉列表,例如

@Html.DropDownListFor(m => m.Subject, (SelectList)ViewBag.Subjects, new { @class = "form-control" })

当我得到时,一切都很好。POST时,数据被保存,但是在UI中我收到一条错误消息:

关键字为“主题”的ViewData项的类型为“ System.String”,但必须类型为“ IEnumerable”

乌夫克·哈克洛(Ufuk)

选项不会回发到表单中。您将不得不再次创建它们:

[HttpPost]
[Authorize]
public ActionResult SendMessage(MessageModel model)
{
    try {
      if (ModelState.IsValid)
      {
          XmlDocument requestXml = XmlUtil.CreateRequestDocument("message", new
          {
              Message = model.MessageBody,
              Type = model.Subject,
              PatientID = model.PatientId,
              RecipientID = model.RecipientId,
              IsUrgent = model.IsUrgent ? "1" : "0"
          });
        //save message logic here
      }
    }
    catch (Exception ex)
    {
        ModelState.AddModelError("ServerMessage", ex.Message);
    }
    var subjects = this.GetDistributionLists();
    if (subjects != null) {
        ViewBag.Subjects = new SelectList(subjects, "Value", "Text");
    }
    if (Request.IsAjaxRequest())
    {
        return PartialView("SendMessagePartial", model);
    }
    else
    {
        return View(model);
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我应该在模型中抛出HttpStatus异常吗?

来自分类Dev

我应该在交易中包含SELECT吗?

来自分类Dev

我应该在表示层中抛出异常吗?

来自分类Dev

我应该在onDestroyView中删除OnClickListener吗?

来自分类Dev

我应该在virtualenv中安装python 3吗?

来自分类Dev

我应该在C ++的类中存储引用吗?

来自分类Dev

我应该在Rust中返回等待吗?

来自分类Dev

我应该在C ++中删除静态对象吗

来自分类Dev

我应该在virtualenv中安装python 3吗?

来自分类Dev

我应该在系统中杀死僵尸进程吗?

来自分类Dev

我应该在onDestroyView中删除OnClickListener吗?

来自分类Dev

我应该在备份中包含/ dev吗?

来自分类Dev

我应该在Java中嵌套这些类吗?

来自分类Dev

我应该在Swift中使用Cocoa绑定吗?

来自分类Dev

我应该在html标记中加上“ javascript:”吗?

来自分类Dev

我应该在.Net 4.5中使用MVC在服务器上应用并行编程吗

来自分类Dev

我应该在MVC应用程序中缓存WindowsIdentity对象吗?如果是这样,最好的方法是什么?

来自分类Dev

我应该在MVC应用程序中缓存WindowsIdentity对象吗?如果是这样,最好的方法是什么?

来自分类Dev

我应该在ReactiveCocoa MVVM中重新绑定模型吗?

来自分类Dev

我应该在Intel i5 NUC中移除RAM标签吗?

来自分类Dev

我应该在angularjs应用程序中为HTML元素使用Ids吗

来自分类Dev

我应该在angularjs应用程序中为HTML元素使用Ids吗

来自分类Dev

我应该在html页面中编写php代码吗?

来自分类Dev

xcworkspace应该在gitignore中吗

来自分类Dev

EF:我应该在我的实体中包括外键ID吗?

来自分类Dev

我可以/应该在文件夹中组织我的30个课程吗?

来自分类Dev

我应该在Rails中明确指定我的助手吗

来自分类Dev

我应该在我的 .htaccess 文件中删除或添加一些东西吗?

来自分类Dev

MVC:我应该在View Controller或UIView的自定义子类中添加并实现触摸手势吗?

Related 相关文章

  1. 1

    我应该在模型中抛出HttpStatus异常吗?

  2. 2

    我应该在交易中包含SELECT吗?

  3. 3

    我应该在表示层中抛出异常吗?

  4. 4

    我应该在onDestroyView中删除OnClickListener吗?

  5. 5

    我应该在virtualenv中安装python 3吗?

  6. 6

    我应该在C ++的类中存储引用吗?

  7. 7

    我应该在Rust中返回等待吗?

  8. 8

    我应该在C ++中删除静态对象吗

  9. 9

    我应该在virtualenv中安装python 3吗?

  10. 10

    我应该在系统中杀死僵尸进程吗?

  11. 11

    我应该在onDestroyView中删除OnClickListener吗?

  12. 12

    我应该在备份中包含/ dev吗?

  13. 13

    我应该在Java中嵌套这些类吗?

  14. 14

    我应该在Swift中使用Cocoa绑定吗?

  15. 15

    我应该在html标记中加上“ javascript:”吗?

  16. 16

    我应该在.Net 4.5中使用MVC在服务器上应用并行编程吗

  17. 17

    我应该在MVC应用程序中缓存WindowsIdentity对象吗?如果是这样,最好的方法是什么?

  18. 18

    我应该在MVC应用程序中缓存WindowsIdentity对象吗?如果是这样,最好的方法是什么?

  19. 19

    我应该在ReactiveCocoa MVVM中重新绑定模型吗?

  20. 20

    我应该在Intel i5 NUC中移除RAM标签吗?

  21. 21

    我应该在angularjs应用程序中为HTML元素使用Ids吗

  22. 22

    我应该在angularjs应用程序中为HTML元素使用Ids吗

  23. 23

    我应该在html页面中编写php代码吗?

  24. 24

    xcworkspace应该在gitignore中吗

  25. 25

    EF:我应该在我的实体中包括外键ID吗?

  26. 26

    我可以/应该在文件夹中组织我的30个课程吗?

  27. 27

    我应该在Rails中明确指定我的助手吗

  28. 28

    我应该在我的 .htaccess 文件中删除或添加一些东西吗?

  29. 29

    MVC:我应该在View Controller或UIView的自定义子类中添加并实现触摸手势吗?

热门标签

归档