如何设置基于 Jquery 中的下拉列表的选定值并将其分配给我的模型?
How do I set selected value that is base on drop-down list in Jquery and assign it to my model?
我需要在用户单击特定选项后将选项中的值分配给我的模型。
<select name="isEmailVerified" class="form-select">
<option value="" selected> all </option>
<option value="true"> verified </option>
<option value="false"> unverified </option>
</select>
期望值=>@Model.IsEmailVerified.XXXXX(我的值)
当我想异步来回发送数据时,我通常做的是:
我利用了 Tag Helpers,因为它们很棒并且可以为您节省大量样板代码,所以我创建了一个标准 <form>
元素 没有 一个实际的 Submit
按钮,只是一个看起来像一个的 div
。您可能需要查看 Select Tag Helper 的官方 MSDN 文档以创建合适的模型。
@model VerificationModel
<form asp-action="CheckEmail" method="post">
<select asp-for="IsEmailVerified" asp-items="Model.VerificationTypes">
<div id="SubmitCheck" class="btn">Check email</div>
</form>
创建一个 javascript 函数来处理实际的提交工作。由于表单是使用 Tag Helpers 创建的,请求主体将自动绑定
$('#SubmitCheck').on('click', function() {
let form = $(this).parents('form')[0];
let formData = new FormData(form);
let request = function () {
return fetch(form.getAttribute('action'), {
method: 'POST',
body: formData
});
};
let onresponse = function() {
// do some preliminary actions on 200 response
}
let callback = function() {
// deal with response result
}
let onerror = function() {
// deal with errors
}
request()
.then(response => onresponse())
.then(result => callback())
.fail(err => onerror());
})
将[FromForm]
属性添加到Controller props(模型与页面中使用的相同)以确保模型绑定
public async Task<CustomResultClass> CheckEmail([FromForm] VerificationModel model)
{
// do something
}
我需要在用户单击特定选项后将选项中的值分配给我的模型。
<select name="isEmailVerified" class="form-select">
<option value="" selected> all </option>
<option value="true"> verified </option>
<option value="false"> unverified </option>
</select>
期望值=>@Model.IsEmailVerified.XXXXX(我的值)
当我想异步来回发送数据时,我通常做的是:
我利用了 Tag Helpers,因为它们很棒并且可以为您节省大量样板代码,所以我创建了一个标准
<form>
元素 没有 一个实际的Submit
按钮,只是一个看起来像一个的div
。您可能需要查看 Select Tag Helper 的官方 MSDN 文档以创建合适的模型。@model VerificationModel <form asp-action="CheckEmail" method="post"> <select asp-for="IsEmailVerified" asp-items="Model.VerificationTypes"> <div id="SubmitCheck" class="btn">Check email</div> </form>
创建一个 javascript 函数来处理实际的提交工作。由于表单是使用 Tag Helpers 创建的,请求主体将自动绑定
$('#SubmitCheck').on('click', function() { let form = $(this).parents('form')[0]; let formData = new FormData(form); let request = function () { return fetch(form.getAttribute('action'), { method: 'POST', body: formData }); }; let onresponse = function() { // do some preliminary actions on 200 response } let callback = function() { // deal with response result } let onerror = function() { // deal with errors } request() .then(response => onresponse()) .then(result => callback()) .fail(err => onerror()); })
将
[FromForm]
属性添加到Controller props(模型与页面中使用的相同)以确保模型绑定public async Task<CustomResultClass> CheckEmail([FromForm] VerificationModel model) { // do something }