【发布时间】:2013-11-14 11:05:17
【问题描述】:
我正在尝试将下拉列表值传递给我的控制器,以便将这些值添加到支付代码列表中,但我不断收到“值不能为空”。错误。我的支付代码列表中有很多项目。不知道这里是空还是错...
内部异常
Value cannot be null.
Parameter name: source
查看
<!-- products input-->
<div class="control-group col-lg-6">
<label class="control-label">Product</label>
<div class="controls">
@using (Ajax.BeginForm("AddPayCode", "Referral",
new AjaxOptions()
{
HttpMethod = "POST",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "PayCodes",
Url = Url.Action("AddPayCode", "Referral")
}))
{
@Html.ValidationSummary()
@Html.DropDownListFor(model => model.SelectedPayCode, new SelectList(Model.PayCodes.ToList(), "Id", "Description"), "- Select -")
<input type="submit" value="Add" />
}
</div>
</div>
控制器
[HttpPost]
public void AddPayCode(ReferralModel model)
{
var test = model.SelectedPayCode;
//TODO: Add to model.Referral.PayCodes list and return list of selected items
}
型号
public class ReferralModel
{
public Customer Customer { get; set; }
public Employee Employee { get; set; }
public List<PayCode> PayCodes { get; set; }
public int SelectedPayCode { get; set; }
public Referral Referral { get; set; }
}
域对象
public class Referral
{
[Key]
public int Id { get; set; }
public int CustomerId { get; set; }
public int EmployeeId { get; set; }
public decimal Total { get; set; }
public virtual List<PayCode> PayCodes { get; set; }
public virtual Customer Customer { get; set; }
public virtual Employee Employee { get; set; }
}
目标:
用户从下拉列表中选择一个支付码并点击“添加”支付码是
已添加到推荐 PayCodes 列表中
控制器将选择的支付代码列表返回给视图(不是 尚未实施)
【问题讨论】:
-
异常告诉你什么是空......但我在问题的任何地方都看不到参数源!你应该发布它!
-
我的项目中的任何地方都没有名为 source 的参数。这让我很困惑。
-
您应该发布有关异常的更多信息!什么时候发生?另一件事,你已经在表单函数中提供了发布的路线,所以你不需要 Url = Url.Action("AddPayCode", "Referral")
-
List
PayCodes = new List ();看起来不见了(?)
标签: ajax asp.net-mvc-4 razor html-select