![](/img/trans.png)
[英]How to make a field in a table null instead of zero if the float text box is empty in asp.net mvc
[英]How can I return an empty list instead of a null list from a ListBoxFor selection box in Asp.net MVC?
控制器采取行動
IList<InputVoltage> inputVoltagesList = unitOfWorkPds.InputVoltageRepository.GetAll.ToList();
pdsEditViewModel.InputVoltageList = inputVoltagesList.Select(m => new SelectListItem { Text = m.Name, Value = m.Id.ToString() });
視圖模型
public IEnumerable<SelectListItem> InputVoltageList { get; set; }
public List<int> SelectedInputVoltages { get; set; }
視圖
@Html.ListBoxFor(m => m.SelectedInputVoltages, Model.InputVoltageList)
當用戶不進行選擇時,我希望收到一個空列表,其中selectedInputvoltages作為空進入我的后控制器操作中,如何將其作為空列表加入?
我喜歡兩個答案,使用一個答案是否有好處?
如果為null,請確保已在控制器(或模型/視圖模型)中對其進行了初始化;如果為null,則可能(盡管是丑陋的代碼)使用了合並運算符即時進行了初始化:
@Html.ListBoxFor(m => m.SelectedInputVoltages, Model.InputVoltageList ?? new List<SelectListItem>())
如果在視圖模型的構造函數中初始化列表,則它將始終至少是一個空列表。 建立視圖模型實例的任何內容都會繼續相應地設置列表。
public class SomeViewModel
{
public List<int> SelectedInputVoltages { get; set; }
public SomeViewModel()
{
SelectedInputVoltages = new List<int>();
}
}
這樣,在SomeViewModel
的實例中它永遠不會為null
,無論視圖,控制器等如何。
如果您始終希望視圖模型的屬性具有默認值,則放置該視圖的最佳位置是視圖模型。 如果將該邏輯放置在控制器或視圖中,那么您每次使用它時都需要重復該邏輯。
這是較舊的帖子,但這是我處理返回空列表的方式。
private List<StockFundamental> GetEmptyList()
{
StockFundamental stockFund = new StockFundamental();
List<StockFundamental> stockFundList = new List<StockFundamental>();
stockFundList.Add(stockFund);
return stockFundList;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.