我對 asp.net core 很陌生,剛剛開始用它開發一個網站。最近,我遇到了一個問題。我有一個頁面,其中有一個默認下拉串列供用戶選擇相應的選項(所有選項都從我從資料庫中獲得的 selectedItem 呈現)
然而,當用戶決定添加一個額外的下拉串列(我使用 javascript 來做)時,選項是空白的。有什么建議?
謝謝你。
function GetNewDropdown() {
return '<hr /><div ><h4 >Please select your options</h4 > <div >'
' <select asp-items="@Model.Options"></div></div>';}
uj5u.com熱心網友回復:
您的動態下拉串列是一個標簽助手。標簽助手是服務器端組件。它們僅在頁面最初由 Web 服務器呈現時起作用。它們在瀏覽器中不起作用。
您可以做的是將 HTML 從 JavaScript 函式移動到部分頁面,然后使用 JavaScript 呼叫命名頁面處理程式方法,該方法回傳 aPartialResult并將其加載到您的頁面中。
部分的:
@model List<SelectListItem>
<hr />
<div class="card-body">
<h4 class="card-title text-primary">Please select your options</h4>
<div class="row">
<select class="form-control" asp-items="@Model"></select>
</div>
</div>
剃須刀頁面:
<button id="add-dropdown">Add</button>
<div id="zone"></div>
@section scripts{
<script>
$(function(){
$('#add-dropdown').on('click', function(){
$.get('?handler=options', function(response){
$(response).appendTo('#zone');
});
});
});
</script>
}
PageModel 中的命名處理程式:
public List<SelectListItem> Options { get; set; }
public PartialViewResult OnGetOptions()
{
Options = new List<SelectListItem> {
new SelectListItem { Text = "a", Value = "1" },
new SelectListItem { Text = "b", Value = "2" },
new SelectListItem { Text = "c", Value = "3" },
};
return Partial("_DropdownPartial", Options);
}
您可以在我的網站上閱讀有關這些內容的更多資訊:
- 選擇標簽助手:https : //www.learnrazorpages.com/razor-pages/tag-helpers/select-tag-helper
- 部分頁面:https : //www.learnrazorpages.com/razor-pages/partial-pages
- 命名處理程式方法:https : //www.learnrazorpages.com/razor-pages/handler-methods#named-handler-methods
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/383554.html
下一篇:系結值while或for回圈
