簡體   English   中英

.NET Core razor 頁面添加下拉列表並從 sql 數據庫填充它

[英].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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM