gpt4 book ai didi

asp.net-mvc - 如何从 ASP.Net MVC 3 的下拉列表中读取数据

转载 作者:行者123 更新时间:2023-12-02 07:06:55 26 4
gpt4 key购买 nike

第一步:

我正在使用下拉列表来显示公司位置。该列表来自 Location 表。

第 2 步:

当用户注册时,下拉列表将显示相关位置。

当用户选择印度时,此值(位置名称)应存储在 UserLogin 表中。

如何从 ASP.Net MVC 3 的下拉列表中读取值?

最佳答案

为您的表单创建一个 ViewModel

public class CompanyViewModel
{
public int CompanyId { set;get;}
// Other properties of Company
public int SelectedLocationId { set;get;}
public IEnumerable<Location> Locations { set;get;}
}

假设你有一个像这样的 Location 类

public class Location
{
public int Id { set;get;}
public string Name { set;get;}
}

在 Register (HTTPGET) Action 方法中,返回一个 CompanyViewModel 对象,其中包含从数据库填充的 Locations 到 View

public ActionReuslt Register()
{
CompanyViewModel model=new CompanyViewModel();
model.Locations =myRepositary.GetAllLocations();
return View(model);
}

假设 GetAllLocations 从您的存储库返回 Location 对象列表。

并且在强类型为 CompanyViewModel 的注册 View 中

@model CompanyViewModel
@using(Html.BeginForm())
{

@Html.DropDownListFor(x=>x.SelectedLocationId,
new SelectList(Model.Locations ,"Id",
"Name"),"Select Location")

<input type="submit" value="Save" />
}

现在编写一个 HTTPPost 操作方法来处理表单发布(当用户提交表单时)

[HttpPost]
public ActionResult Register(CompanyViewModel model)
{
if(ModelState.IsValid)
{
// You will have selected Location id available in model.SelectedLocationId property now
//Save and redirect.
}
//Model Validation failed. so Let us reload the locations again
//because HTTP is stateless and ASP.NET MVC is true to HTTP ! :)
model.Locations =myRepositary.GetAllLocations();
return View(model);
}

关于asp.net-mvc - 如何从 ASP.Net MVC 3 的下拉列表中读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10550420/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com