1
我試圖將dropdownlist值傳遞給我的控制器,所以我可以將值添加到一個paycodes列表,但我不斷收到「值不能爲空」。錯誤。我的支付代碼列表中有很多項目。不知道什麼是空或錯在這裏...Razor - 通過Ajax.BeginForm將DropDownList選定值傳遞給控制器
內部異常
Value cannot be null.
Parameter name: source
VIEW
<!-- 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; }
}
目的:
用戶從下拉菜單中選擇一個paycode並點擊 「添加」 Paycode是
添加到介PayCodes列表
控制器返回選擇到視圖的付費代碼列表(不是 尚未實施)
異常告訴你什麼是空...但我看不到參數源在問題的任何地方!你應該發佈它! – Fals
我的項目中沒有一個名爲source的參數。這對我來說是如此令人困惑。 – devfunkd
您應該發佈有關異常的更多信息!它何時發生?另一件事,你已經在表單函數中提供post的路由,所以你不需要Url = Url.Action(「AddPayCode」,「Referral」) – Fals