#asp.net-mvc #asp.net-core #.net-core #razor #razor-pages
#asp.net-mvc #asp.net-core #.net-ядро #razor #страницы razor
Вопрос:
Я хотел бы привязать форму с несколькими элементами списка к сообщению, а ниже приведен мой код:
<form asp-page-handler="InsertAssignedStates" method="post">
name="assignedStates" />
<div class="row">
<div class="dual-list list-left col-md-5">
<div class="well text-right">
<select asp-for="Stest"
multiple="multiple"
size="10"
class="form-control mb-2 mr-sm-2 ml-sm-3 leftList"
id="assignedStateList"
asp-items="@Model.AssignedTaxStateList">
</select>
</div>
</div>
И у меня есть это в модели страницы:
[BindProperty(SupportsGet = true)]
public IList<Tax> AssignedTaxStates { get; set; }
public IActionResult OnPostInsertAssignedStates()
{
return Redirect("Index/");
}
Он достигает точки останова, но не привязан.
Ответ №1:
Asp.net основные данные привязки с атрибутом name.Вот демонстрационная версия для привязки входных данных к списку и привязки множественного выбора к списку на страницах razor.
Модель:
public class Tax
{
public int Id { get; set; }
public string Name { get; set; }
}
cshtml:
<form asp-page-handler="InsertAssignedStates" method="post">
<div class="row">
<div class="dual-list list-left col-md-5">
<div class="well text-right">
<select asp-for="Stest"
multiple="multiple"
size="10"
class="form-control mb-2 mr-sm-2 ml-sm-3 leftList"
id="assignedStateList"
asp-items="@Model.AssignedTaxStateList">
</select>
</div>
@{ var i = 0;}
@foreach (var item in Model.AssignedTaxStates)
{
<div class="well text-right">
<input value="@item.Id" name="AssignedTaxStates[@i].Id"/>
<input value="@item.Name" name="AssignedTaxStates[@i].Name"/>
</div>
i ;
}
</div>
</div>
<input type="submit" value="submit" />
</form>
cshtml.cs:
public class TestModel : PageModel
{
[BindProperty]
public List<SelectListItem> AssignedTaxStateList { get; set; }
[BindProperty]
public IList<Tax> AssignedTaxStates { get; set; }
[BindProperty]
public List<string> Stest { get; set; }
public void OnGet()
{
AssignedTaxStateList = new List<SelectListItem> { new SelectListItem { Text = "1", Value = "1" }, new SelectListItem { Text = "2", Value = "2" } };
AssignedTaxStates = new List<Tax> { new Tax { Id = 1, Name = "tax1" }, new Tax { Id = 2, Name = "tax2" }, new Tax { Id = 3, Name = "tax3" } };
}
public IActionResult OnPostInsertAssignedStates()
{
return Redirect("Index/");
}
}
Комментарии:
1. Какую дату вы имеете в виду?
2. О, это моя ошибка, я имею в виду данные.