2016-02-13 52 views
-1

,我要为我的客户表一ClientsName到我的支付表的下拉列表,所以当我创建了一个支付我拿下拉列表这样的: enter image description here下拉值变空值

所以我把一个断点调试对我控制器和价值ClientsName总是空的,但在我看来,它总是把我的下拉列表的第一个值

enter image description here

型号:

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控制器:

//GET CREATE CONTROLLER 

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

    } 

POST控制器(外延法):

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; 

    } 
} 

CREATE VIEW:

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

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

+0

您的HTML下拉列表中没有空白值,因此如果您未指定要选择的选项,它将始终显示第一个选项。你的问题和问题是什么? –

+0

如何指定我选择的选项?注意:我更新我的视图 – Demain

+0

您是否希望下拉列表选择空白或特定项目? –

回答

0

修改您的控制器并指定选定的客户端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" }) 
+0

'int selectedID =”选定的clientID“;'行说”无法将源类型字符串转换为目标类型int“ – Demain

+0

您需要为selectedID指定所选客户端的ID。我会更新我的答案,使其更清楚。 –

+0

好吧它是'int SelectedID = model.ClientsId;',但它没有改变什么,它仍然没有工作 – Demain