簡體   English   中英

將選擇列表項中的值保存到視圖模型

[英]Saving values from selectlistitem to viewmodel

我對 selectListItem 類有問題。
(我可以將數據加載到表單中的列表項,但在提交時不能只保存列表項中的數據)視圖模型。
這是一些代碼:
視圖模型的屬性

[Required]
public int PoslovnicaID { get; set; }
[Required(ErrorMessage = "Polje je obavezno.")]
public List<SelectListItem> poslovnice { get; set; }

視圖中的代碼

<div class="col-md-12 form-group">
  <label asp-for="poslovnice">Odabir poslovnice</label>
  <select name=""
    asp-for="PoslovnicaID"
    asp-items="poslovnice"
    class="form-control">
    <option selected disabled>Odabir poslovnice</option>
  </select>
</div>

你能告訴我我是否遺漏了一些明顯的東西嗎
我感謝任何幫助

模型綁定基於 name 屬性。 您應該刪除 select 標簽中的name="" ,因為asp-for="PoslovnicaID"會將其呈現為name="PoslovnicaID"

另外,表單只會提交selected option(PoslovnicaID)的值,會在ViewModel中綁定PoslovnicaID ,所以poslovnice為null,應該為null。

一個簡單的測試:

public IActionResult Index()
{
    ViewModel viewModel = new ViewModel
    {
        PoslovnicaID = 1,
        poslovnice = new List<SelectListItem> 
        { 
            new SelectListItem{ Text = "AAA", Value = "1"},
            new SelectListItem{ Text = "BBB", Value = "2"},
            new SelectListItem{ Text = "CCC", Value = "3"},
        }

    };
    return View(viewModel);
}

[HttpPost]
public IActionResult Edit(ViewModel viewModel)
{
        
    return View();
}

看法:

@model ViewModel
@{
    ViewData["Title"] = "Index";
}

<h1>Index</h1>

<form asp-action="Edit" method="post">
    <div class="col-md-12 form-group">
        <label asp-for="poslovnice">Odabir poslovnice</label>
        <select name="poslovnice"
                asp-for="PoslovnicaID" 
                asp-items="Model.poslovnice"
                class="form-control">
            <option selected disabled>Odabir poslovnice</option>
        </select>
    </div>

    <input type="submit" value="submit" class="btn btn-danger" />
</form>

結果:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM