![](/img/trans.png)
[英]ASP.NET Core with Razor Pages: Return value from DropDownList
[英].NET Core razor pages adding a dropdownlist and populating it from sql database
我正在嘗試將City
屬性設置為由我的本地 sql 服務器填充的下拉列表屬性。 我應該在我的代碼中更改什么?
順便說一句,我在我的項目中使用ASP.NET Core 3.1 和本地 SQL Server 數據庫。 請用 Razor Pages 格式回答,而不是 MVC 格式。
我的Person
:
public class Person
{
[Key]
public int ID { get; set; }
public string City { get; set; }
}
在Models/Person/create.cshtml
內部:
<div class="form-group">
<label asp-for="Person.City" class="control-label"></label>
<input asp-for="Person.City" class="form-control" />
<span asp-validation-for="Person.City" class="text-danger"></span>
</div>
在Models/Person/edit.cshtml
:
<div class="form-group">
<label asp-for="Person.City" class="control-label"></label>
<input asp-for="Person.City" class="form-control" />
<span asp-validation-for="Person.City" class="text-danger"></span>
</div>
也許你可以在視圖文件中嘗試這樣的事情:
<select asp-for="Person.CityId" class="form-control"
asp-items="ViewBag.CityId"></select>
並在 Razor 頁面或控制器中使用類似的東西。
ViewData["CityId"] = new SelectList(_context.Cities,
"CityId", "CityId", Person.CityId);
您可以根據您的模型調整此代碼。 這在我的 MVC 項目中有效,所以我認為您可以輕松地將其調整為 Razor Page。
這是一個演示:
public class ListModel : PageModel
{
[BindProperty]
public SelectList Cities { get; set; }
[BindProperty]
public Person Person { get; set; }
public void OnGet()
{
Cities = new SelectList(_context.Cities.ToList(), "City", "City");
}
}
cshtml:
<select asp-for="Person.City" asp-items=@Model.Cities ></select>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.