我在剃刀页面asp.net核心6上工作。我面临两个属性SelectedOptionValue
和SelectedOptionText
在页面模型上显示为null的问题。
在页面模型I上使用隐藏字段来保留和存储所选文本和所选选项ID的值。
<select id="PrinterName-select" asp-for="SelectedPrinterId" name="selectprinterid" class="form-select" style="margin-left:3px;font-size:15px;font-family: 'Open Sans' , sans-serif;font-weight: bold;">
<option value="0">--Select--</option>
@foreach (var printer in Model.PrinterList)
{
<option value="@printer.UserPC">@printer.PrinterName</option>
}
</select>
<input type="hidden" id="selected-option-text" name="selected-option-text" value="@Model.SelectedOptionText" />
<input type="hidden" id="selected-option-value" name="selected-option-value" value="@Model.SelectedOptionValue" />
字符串
在JavaScript上,我做如下:
var selectElement = document.getElementById("PrinterName-select");
selectElement.addEventListener("change", function () {
var selectedOption = selectElement.options[selectElement.selectedIndex];
var selectedText = selectedOption.text;
var selectedId = selectedOption.id;
console.log("Selected Text: " + selectedText);
console.log("Selected ID: " + selectedId);
型
在页面模型上两个属性显示为空值,请如何解决此问题
public ActionResult OnGetSelectedPrinter(string selectedtext,string selectedvalues)
{
string a = SelectedOptionValue;//display as null
string b = SelectedOptionText;//display as null
}
型
1条答案
按热度按时间ttvkxqim1#
从你的问题中,
SelectedOptionText
和SelectedOptionValue
在后端得到null值。这似乎是一个模型绑定问题。在ASP.NET核心中,基于属性名称的模型绑定。在输入标记中:字符串
你把它命名为
selected-option-value
,它不能匹配后端的属性名,所以当你提交表单时。你会得到空值在后端.你可以在输入标签中使用
asp-for
:型
asp-for
会根据属性的名称在input标签中自动生成name
和id
属性,所以html页面中的上述代码会转换为:型
如果此属性有初始值,
asp-for
也会自动添加value
属性。更多细节可以参考Model Binding in Asp.Net-Core。