Tag: viewmodel

ASP.NET MVC ViewModel和DropDownList

我的ViewModel中有2个属性 class ViewModel1 { Dictonary PossibleValues {get;set;}//key/value int SelectedKey {get;set} } 我想使用Html.DropDownListFor编辑它 我想让MVC自动将数据序列化到ViewModel中或从ViewModel中自动序列化,以便我可以进行以下操作 public ActionResult Edit(ViewModel1 model) … 实现这一目标的最佳方法是什么?

如何避免ViewModel中的命令混乱?

我正在构建一个使用相当多命令的应用程序,它们使我的viewmodel变得混乱。 MVVM对我来说是新手,很抱歉,这个问题有点愚蠢。 有没有办法减少混乱? 例如,在这里你可以看到杂乱的一部分.. private void InitializeCommands() { LogoutCommand = new RelayCommand(Logout); OpenCommand = new RelayCommand(SetImage); SaveCommand = new RelayCommand(SaveImage, SaveImageCanExecute); UploadToFlickrCommand = new RelayCommand(UploadToFlickr); CropCommand = new RelayCommand(SetCropMouseEvents); RemoveRedEyeCommand = new RelayCommand(SetRemoveRedEyeMouseEvents); TextInputCropCommand = new RelayCommand(CropFromText); ReloadImageCommand = new RelayCommand(ReloadImage); FlipYCommand = new RelayCommand(FlipY); Rotate90RCommand = new RelayCommand(Rotate90R); FlipXCommand = new RelayCommand(FlipX); ToGrayscaleCommand = […]

如何使用AutoMapper将多个子类映射到一个类?

假设我有三个类是基类的子类: public class BaseClass { public string BaseName { get; set; } } public class Subclass1 : BaseClass { public string SubName1 { get; set; } } public class Subclass2 : BaseClass { public string SubName2 { get; set; } } public class Subclass3 : BaseClass { public string SubName3 { get; set; } } […]

如何在viewmodel(.cs)中调用window(.xaml.cs)中的方法而不在wpf中引入新的引用

我正在寻找一种在我的主窗口中调用方法的简单方法,但我想从我的View Model中调用它。 基本上,我正在寻找一些“this.parent”之类的东西放在View Model中引用主窗口。 或者,如果您想查看我想要这样做的原因并告诉我另一种解决我的问题的方法: 我正在使用一个不断获取信息的应用程序。 在viewmodel中,处理信息。 我想在每次出现满足一定资格的信息时发出通知。 最初,我在viewmodel中有一个字典存储了有关该信息的信息,我在MainWindow中访问了该字典,以便我可以使窗口闪烁并发送其他通知。 但是当我在MainWindow中访问它时,我遇到了viewmodel字典不断变化的问题。 对不起,这个问题听起来很愚蠢。 我刚刚在两个月前开始使用WPF,并且在此之前也没有很好的编程背景。

如何在AutoMapper中处理自定义属性

我有一个ViewModel,它接受一些Model数据并略微改变它。 我这样做的方式“有效”,因为我只是将DomainModel传递给ViewModel的构造函数,但由于我在一些一对一的ViewModel上使用AutoMapper,我想我会尝试学习如何在所有ViewModel上进行映射。 这是ViewModel的一个例子,它可以做一些额外的工作。 public class UsersDetailsViewModel { public string UserName { get; set; } public string Email { get; set; } public string Website { get; set; } public int ID { get; set; } public List OpenIds { get; set; } public string UserAge { get; set; } public string About { get; set; […]

View Model之间的WPF MVVM通信

我正在研究WPF MVVM应用程序,其中我有两个视图View1和View2及其各自的ViewModel。 现在,我希望单击View1中的按钮将关闭View1并使用ViewModel1打开View2。 此外,我想从ViewModel1打开时向ViewModel2传递一些人类实例,该实例将用于在View2中显示信息。 在ViewModels中实现这一目标的最佳方式和最简单方法是什么,我希望避免在代码后面编写导航代码。

如何在MVVM(WPF)中编写“ViewModelBase”

我是WPF编程环境中的新手。 我正在尝试使用MVVM设计模式编写程序。 我做了一些研究并阅读了一些与之相关的文章,很多时候我遇到过这个问题 ViewModelBase 我知道它是什么..但是我可以具体知道我应该从哪里开始写出我自己的ViewModelBase吗? 就像……真正了解正在发生的事情而不会变得太复杂。 谢谢 :)

如何在ASP.NET MVC中使用ViewModels?

我刚开始学习ASP.NET MVC中的ViewModels。 所以,我想实现一个示例如下: 商业实体 public class AddModel { public int a { get; set; } public int b { get; set; } public int Add() { return (this.a + this.b); } } 添加ViewModel public class AddViewModel { public AddModel addModel; public int Total { get; set; } } 调节器 public class AddController : Controller { […]

MVC 3形成post和持久模型数据

我想我错过了关于MVC表单如何工作的一些基础知识。 我的主页上有一个搜索表单,有五六个不同的字段供用户搜索。 所以我对我的结果动作进行了这个post就好了。 Result操作如下所示: [HttpPost] public ActionResult Results(SearchModel model) { ResultsModel results = new ResultsModel(); results.ResultList = SearchManager.Search(model).ToList(); return View(“Results”, results); } 我为这篇文章简化了上面的方法,但想法是一样的。 所以一切正常。 我的结果页面显示结果列表,我的用户位于以下URL: http://www.site.com/results 所以…现在我想做一些相当普遍的事情。 我在结果页面上有两个下拉列表。 “排序依据”和“每页结果数”。 我该怎么做并将全套模型数据发送回控制器,以便我可以查询新参数? 实际上,SearchModel类有大约60个不同的字段。 所有这些数据都可能包含在模型中。 你如何坚持到“回帖”的页面? 同样的问题让我对如何进行分页感到有点困惑。 我的分页链接将转到以下URL: http://www.site.com/results/2 但是这假设我们正在响应GET请求(我不想在查询字符串中使用60个数据字段)并且模型数据在GET请求之间传递,我知道情况并非如此。 正如我所说的,我认为我缺少一些关于使用MVC 3,模型和表单post的基础知识。 谁能帮助我指出正确的方向? 我很乐意根据需要编辑/更新这篇文章以澄清事情。 编辑 :我也想指出,我想避免将视图模型存储在Session变量中。 这个站点最终将最终在Web场中进行负载平衡,并且我真的试图尽可能避免使用Session。 但是,如果它是唯一的选择,我将配置另一个会话状态提供程序,但我不想这样做。

在ASP.NET MVC 3中使用视图模型

我对查看模型比较新,我遇到了一些使用它们的问题。 这是一种情况,我想知道最佳做法是什么…… 我将视图所需的所有信息都放入视图模型中。 这是一个例子 – 请原谅任何错误,这是我的头顶编码。 public ActionResult Edit(int id) { var project = ProjectService.GetProject(id); if (project == null) // Something about not found, possibly a redirect to 404. var model = new ProjectEdit(); model.MapFrom(project); // Extension method using AutoMapper. return View(model); } 如果屏幕只允许编辑一个或两个字段,当视图模型返回时,它会丢失相当多的数据(应该是这样)。 [HttpPost] public ActionResult Edit(int id, ProjectEdit model) { var project = […]