dropdown
というレンダリングを簡単に作成しようとしていますが、これはRazorPagesで生成されたCreateフォームでの使用です。なんらかの理由で、SelectList
はmultiple="multiple"
と表示され、すべてのオプションがdropdown
の代わりにスクロールバーを含むフレームに表示されます。私の問題は私のコントローラと、これらの属性を設定しないときに希望の結果が得られたので、SelectListItems
の "Text"と "Value"の両方の属性を匿名型に設定しようとしているという事実にあります。SelectListレンダリングで複数の "multiple"を使用したくない場合
これは多くのことが私にとって非常に新しいものです。誰かが自分のコードに関して一般的なアドバイスをお持ちでしたら、感謝しています。ここで
は、私の見解モデルである:ここで
public class CreateFileViewModel
{
public SelectList EnrolleeId { get; set; }
public SelectList GroupId { get; set; }
[DataType(DataType.Date)]
public DateTime StartDate { get; set; }
public string Status { get; set; }
}
は私のコントローラです:
public IActionResult TestCreate()
{
//query items for SelectLists
var users = from u in _context.Users
orderby u.LastName
select u;
var groups = from g in _context.Group
orderby g.Name
select g;
// Loop through queries above and convert to collections of SelectListItems
var enrolleeSelectListItems = from u in users
select new SelectListItem()
{
Value = u.Id.ToString(),
Text = u.LastName + ", " + u.FirstName + " " + u.MiddleName
};
var groupSelectListItems = from g in groups
select new SelectListItem()
{
Value = g.ID.ToString(),
Text = g.Name
};
//convert SelectListItem collections into SelectLists within view
var cfvm = new Models.TestModels.CreateFileViewModel();
cfvm.EnrolleeId = new SelectList(enrolleeSelectListItems, "Value", "Text");
cfvm.GroupId = new SelectList(groupSelectListItems, "Value", "Text");
return View(cfvm);
}
は、これが私の見解の関連部分である:
<div class="form-group">
<label asp-for="EnrolleeId" class="control-label"></label>
<select asp-for="EnrolleeId" asp-items="Model.EnrolleeId">
<option value="">Select</option>
</select>
</div>
、ここどのようですブラウザでレンダリング:
<select id="EnrolleeId" multiple="multiple" name="EnrolleeId" aria-invalid="false" class="valid">
<option value="">Select</option>
<option value="3e60fabd-6901-45a1-ae2a-5056d77f415c"></option>
<option value="40ce8b6e-62a5-4c3c-808b-90e36d633ec0"></option>
<option value="c0c49df2-da52-4a01-9a8a-47bab6f5496d"></option>
</select>
それを修正しました。早速のご返事ありがとうございます! – StateofDK
'EnListから' EnroleeList'(EnrolleIId)のように名前を変更することをお勧めします。 – Shyju
明示的にSelectListプロパティの名前を変更していますか、命名規則や違反していることはありますか? – StateofDK