【问题标题】:Dropdown value gets null value下拉值获取空值
【发布时间】:2016-02-13 19:22:50
【问题描述】:

我将客户表的 ClientsName 放到下拉列表中的 Payments 表中,因此当我创建付款时,我会采用如下下拉列表:

所以我在我的控制器上放置了一个断点调试,Value ClientsName 总是为空,但在我看来,它总是把我的下拉列表的第一个值放在上面

型号:

public class Payments
{
    [Key]
    public int PaymentsId { get; set; }

    public int ClientsId { get; set; }
    [ForeignKey("ClientsId")]
    public virtual Clients Clients { get; set; }
    public String Paymentnumber { get; set; }
    public DateTime PaymentDate { get; set; }
    public Decimal Amount { get; set; }
    public Decimal Discount { get; set; }
    public String Reference { get; set; }
    public String Bank { get; set; }
    public Decimal Total { get; set; }

}

获取控制器:

//GET CREATE CONTROLLER

 public ActionResult Create(Payments model)
    {
        var clientList = new PaymentsViewModel
        {
            Clients = new SelectList(db.ClientsList, "ClientsId", "ClientsName")
        };
        return View(clientList);

    }

后控制器(扩展方法):

 public static PaymentsViewModel PaymentsCreate(this PaymentsViewModel model)
    {
        var paynew = new Payments
        {
            Paymentnumber = model.Paymentnumber,
            PaymentDate = DateTime.Now.Date,
            Amount = model.Amount,
            Discount = model.Discount,
            Reference = model.Reference,
            Bank = model.Bank,
            Total = model.Amount - model.Discount
        };

        db.PaymentsList.Add(paynew);
        db.SaveChanges();
        return model;

    }
}

创建视图:

   @Html.DropDownListFor(x => x.Clients, Model.Clients, new { @class = "form-control", @required = "required" })

我真的不知道这里发生了什么

【问题讨论】:

  • 您在 HTML 中的下拉列表没有空白值,因此如果您不指定选择哪个选项,它将始终显示第一个选项。您的问题和问题是什么?
  • 如何指定我选择的选项?注意:我更新了我的观点
  • 您希望下拉列表选择空白还是特定项目?
  • @TK-421 我的下拉列表中的特定项目,所以在我的客户名称我的付款索引中,我可以显示谁进行了付款
  • @TK-421 int selectedID = "the selected clientID"; 行说“无法将源类型字符串转换为目标类型 int”

标签: c# .net asp.net-mvc dropdown


【解决方案1】:

修改您的控制器并指定选定的客户端 ID。

 public ActionResult Create(Payments model)
 {
    ViewBag.Clients = new SelectList(db.ClientsList, "ClientsId", "ClientsName", model.clientID)
    return View();
}

修改您的视图。

 @Html.DropDownListFor(x => x.Clients, ViewBag.Clients, new { @class = "form-control", @required = "required" })

【讨论】:

  • int selectedID = "the selected clientID"; 行说“无法将源类型字符串转换为目标类型 int”
  • 您需要将 selectedID 分配给您所选客户的 ID。我会更新我的答案以使其更清楚。
  • 好吧,它是int SelectedID = model.ClientsId;,但它没有任何改变,它仍然没有工作
  • 我怀疑这是您模型中的延迟加载。请参阅我的编辑以了解要更改的内容。
猜你喜欢
  • 1970-01-01
  • 2014-09-06
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
  • 2011-04-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多