[英]Wrong select tag rendered id - asp-for property
這是我的代碼
namespace Cinema.WebCore.Pages.MovieDateHall
{
public class CreateModel : PageModel
{
private readonly Cinema.WebCore.Data.CinemaContext _context;
public CreateModel(Cinema.WebCore.Data.CinemaContext context)
{
_context = context;
}
[BindProperty]
public SelectList Movies { get; set; }
public IActionResult OnGet()
{
MovieDateHallSeats movieDateHall = new MovieDateHallSeats();
movieDateHall.Movies = _context.Movies.ToList();
Movies = new SelectList(movieDateHall.Movies, "Id", "MovieTitle");
return Page();
}
}
}
和前端代碼是
@page
@model Cinema.WebCore.Pages.MovieDateHall.CreateModel
<select asp-for="Movies" asp-items="Model.Movies">
<option value="">Pick one</option>
</select>
它可以工作,但 select 標簽的渲染輸出有multiple=multiple
,這不是我需要的。
<select id="Movies" multiple="multiple" name="Movies"> <option value="">Pick one</option> <option value="1">Matrix</option> </select>
我需要的是...
<select id="MovieId" name="Movies"> <option value="">Pick one</option> <option value="1">Matrix</option> </select>
我在代碼隱藏處的綁定不正確嗎?
[BindProperty]
public SelectList Movies { get; set; }
你需要擁有另一處房產
public string SelectedMovie {get;set;}
並將其用於 asp-for
我認為您以錯誤的方式使用select
。 對於asp-for
你應該把你的屬性句柄選擇的值
<select asp-for="MovieId" asp-items="Model.Movies">
<option value="">Pick one</option>
</select>
例子:
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public int Price { get; set; }
public int CompanyId { get; set; }
public Company Company { get; set; }
}
///
form asp-action="Create" asp-controller="Home" asp-antiforgery="true">
<div>
<div>
<label asp-for="Name"></label>
<input type="text" asp-for="Name" />
</div>
<div>
<label asp-for="Price"></label>
<input asp-for="Price" />
</div>
<div>
<label asp-for="CompanyId"></label>
<select asp-for="CompanyId" asp-items="ViewBag.Companies"></select>
</div>
<div>
<input type="submit" value="Save" />
</div>
</div>
</form>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.