2016-02-13 28 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