【发布时间】: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