這是剃刀代碼
@Html.DropDownList("ddl", Model.estados.Select(item => new SelectListItem
{
Value = item.Id_Estado.ToString(),
Text = item.Nombre_Estado,
Selected = "select" == item.Id_Estado.ToString()
}), new { @class = "form-select", aria_label="Default select eaxmple" }
)
這是 ViewModel,它是一個 IEnumarable
public class ViewModel
{
public UsuariosViewModel usuario { get; set; }
public IEnumerable<TiposUsuariosViewModel> tiposUsuarios { get; set; }
public IEnumerable<EstadosViewModel> estados { get; set; }
}
uj5u.com熱心網友回復:
改變模型
public class ViewModel
{
public string ddl {get; set;}
public IEnumerable<SelectListItem> estadoItems { get; set; }
public UsuariosViewModel usuario { get; set; }
public IEnumerable<TiposUsuariosViewModel> tiposUsuarios { get; set; }
public IEnumerable<EstadosViewModel> estados { get; set; }
}
在您的操作中將 estado 專案添加到視圖模型
estadoItems= context.estados.Select(item => new SelectListItem
{
Value = item.Id_Estado.ToString(),
Text = item.Nombre_Estado,
}).ToList();
viewModel.estadoItems = estadoItems
并查看
@Html.DropDownListFor(model=>model.ddl, @Model.estadoItems, new { @class = "form-select", aria_label="Default select example" });
但最好使用 select,因為它會自動從串列中選擇專案
<select class="form-control" asp-for="ddl" asp-items="@Model.estadoItems"> select </select>
uj5u.com熱心網友回復:
我假設您想將所選選項的值發送到您的Controller方法。現在由于您還沒有展示您的Controller方法,我將給出一個使用AJAXand的基本示例Jquery:
首先給id你的下拉串列:
@Html.DropDownList("ddl", Model.estados.Select(item => new SelectListItem
{
Value = item.Id_Estado.ToString(),
Text = item.Nombre_Estado,
Selected = "select" == item.Id_Estado.ToString()
}), new { @class = "form-select", aria_label="Default select eaxmple", @id="myddl" }
)
您可以有一個按鈕來呼叫事件或您正在使用的任何事件,您可以這樣做。我在這里使用按鈕事件:
<input type="button" value="Process Input" class="btn btn-primary btn-lg btn-block" id="mySubmitbtn" />
然后您可以使用 AJAX 將其發送到您的Controller方法并獲得回應:
$(document).ready(function () {
$("#mySubmitbtn").click(function () {
var mySelectedValue= $('#myddl').find(":selected").text();
var json = {
mySelectedValue: mySelectedValue
};
var options = {};
options.url = "@Url.Action("ProcessInput", "Home")";
options.type = "POST";
options.data = {"json": JSON.stringify(json)};
options.contentType = "application/json";
options.dataType = "json";
options.success = function (msg) {
alert("Successfully processed");
};
options.error = function () {
alert("Error");
};
$.ajax(options);
})
});
最后你的Controller方法是:
using System.Web.Script.Serialization;
[HttpPost]
public JsonResult ProcessInput(string json)
{
var serializer = new JavaScriptSerializer();
dynamic jsondata = serializer.Deserialize(json, typeof(object));
//Get your variables here from AJAX call
var mySelectedValue = jsondata["mySelectedValue"];
//Do your stuff
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/418275.html
標籤:
