ASP.NET C# MVC 4 Code First 应用程序 - 在 Visual Studio 2012 Express、SQL Server 2012 Express 中。
我有一个地点对象。我想输出列表中所有地点的名称 - 每个地点旁边都有一个复选框。
然后,我希望登录用户选择他们喜欢的地方 - 并将其保存。然后他们可以登录并再次查看所有内容,并选中相应的复选框。
最好的方法是什么?我是 MVC 的新手,不确定这里的最佳实践。
谢谢
更新
下面的 CheckboxListFor 帮助器工作得很好,尽管如何处理用户选择并不明显(它只返回一个 ID 列表)。
我创建了以下内容以获取该 ID 列表 - 将其转换为对象列表,并将其添加到视图模型中的 SelecteCities 列表中。这将选中用户在发布页面之前选择的所有复选框:
public ActionResult Examples(PostedCities postedCities)
{
// ViewModel
CitiesViewModel cvm = new CitiesViewModel();
// Create list of cities
List<City> cities = new List<City>{
new City { Id = 1, Name = "London"},
new City { Id = 2, Name = "Saigon"},
new City { Id = 3, Name = "New York"}
};
// Assign list of cities to ViewModel
cvm.AvailableCities = cities;
// If posted cities present, user posted something (else probably first call)
if (postedCities.CityIDs != null)
{
// temporary city object
City cty = new City();
// List of selected cities
List<City> selCities = new List<City>();
// Go through each postedCity ID
foreach (string s in postedCities.CityIDs)
{
// Get ID of postedCity
int IdSel = Convert.ToInt32(s);
// Lookup city Id in cities
cty = cities.Single(c => c.Id == IdSel);
// Add selected city to cty object
selCities.Add(cty);
}
// Fill cvm.SelectedCities with selCities
cvm.SelectedCities = selCities;
}
return View(cvm);
}
这行得通 - 这是一个好方法还是我把它复杂化了?还是做了坏事?