gpt4 book ai didi

c# - SelectLists 属于 viewModels 吗?

转载 作者:可可西里 更新时间:2023-11-01 08:49:50 27 4
gpt4 key购买 nike

看完这个问题 ASP.NET MVC: Nesting ViewModels within each other, antipattern or no?

和 Derick Bailey 的评论

i think the "consider what your viewmodel would look like as xml or json" bit is probably the most important point, here. i often use that perspective to help me understand what the view model should look like, and to help me understand what data is "viewmodel" data vs "data that goes on the HTML rendering of the view". helps to keep things clean and separate them nicely – Derick Bailey Apr 11 '11 at 15:45

这让我想知道如何为具有数据绑定(bind)选择项的 ViewModel 创建 View 。我真的很挣扎,因为我无法想象 SelectList 属于哪里。如果我考虑 JSON 或 XML,那么 SelectList 是 View Only 的一部分。我想要的只是一个下拉列表,其中预先填充了一个值列表,供用户选择 Location 将它放在 ViewModel 中似乎是错误的,但是当我考虑将它移动到 View 时,我不知道在哪里放置逻辑以从数据库中提取以填充选择列表

public class SearchViewModel
{
public int? page { get; set; }
public int? size { get; set; }
//Land Related search criteria
[IgnoreDataMember]
public SelectList LocationSelection{ get; set; }

更新

这是一个非常密切相关的很好的问题和答案 C# mvc 3 using selectlist with selected value in view

我已经测试了这个实现,它做了我想做的事。我不会急于选择答案,因为我还没有完全审查这个问题。

最佳答案

我会按照以下几行重构您的 viewModel,因为我认为选择列表不应该属于 viewmodel:

public class SearchViewModel
{
public int? page { get; set; }
public int? size { get; set; }
//Land Related search criteria
public IEnumerable<Location> LocationSelection{ get; set; }
}

然后在您的 View 中,这样填充 viewModel:

public ActionResult Search()
{
var viewModel = new SearchViewModel()
{
viewModel.LocationSelection = _repository.All<Location>()
};

// any other logic here or in service class
return View(viewModel);
}

然后在您的 View 中,您将使用 html.dropdownlist 帮助程序来显示您的项目。对我有用

关于c# - SelectLists 属于 viewModels 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10933674/

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