相关疑难解决方法(0)

在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);
}
Run Code Online (Sandbox Code Playgroud)

如果屏幕只允许编辑一个或两个字段,当视图模型返回时,它会丢失相当多的数据(应该是这样).

[HttpPost]
public ActionResult Edit(int id, ProjectEdit model)
{
    var project = ProjectService.GetProject(id);

    if (project == null)
        // Something about not found, possibly a redirect to 404.

    try
    {
        if (!ModelState.IsValid)
            return View(model) // Won't work, view model is …
Run Code Online (Sandbox Code Playgroud)

c# viewmodel automapper asp.net-mvc-3

17
推荐指数
2
解决办法
3万
查看次数

放在ViewModel中的内容

你在视图中放了什么?

最近博客斯科特Hanselman的有关使用一个特殊的模型绑定,方便测试使我想到了以下几点:你放什么在你的控制器逻辑构建视图模型,哪些应放在有何看法?他做的是这样的:

var viewModel = new DinnerFormViewModel {  
    Dinner = dinner,  
    Countries = new SelectList(PhoneValidator.Countries, dinner.Country)  
};  
return View(viewModel);
Run Code Online (Sandbox Code Playgroud)

现在,我使用相同的方式将数据传递给我的视图,但我不确定他如何处理Countries属性.您可以争辩双方:在SelectList中包装Country列表会为视图准备数据,就像创建一个viewmodel DTO来传递数据一样.另一方面,它有点像你专门操作下拉列表中使用的数据,限制了视图处理来自控制器的数据的方式.我觉得这对于视图和控制器之间的关注点分离是一个灰色区域,我无法真正决定走哪条路.对此有什么最佳做法吗?

PS:为了简单起见,让我们假设默认的ASP.NET MVC上下文,所以基本上你的开箱即用项目.默认视图引擎和所有爵士乐.

asp.net-mvc separation-of-concerns

14
推荐指数
2
解决办法
4529
查看次数

ASP.NET MVC,部分视图和数据

任何人都可以详细说明为什么你在动态菜单之类的每个动作上定义ViewData ["MenuData"]的原因?

我有一个简单的局部视图,它呈现一个菜单,我在一个母版页中渲染这个菜单.这对我来自ASP.NET WebForms是直观的,但是我填充菜单的唯一方法是传递ViewData ["MenuData"],但是我必须在每个控制器动作中执行此操作.它确实感觉有点愚蠢,我每次都必须定义这个视图数据.

在可测试性和ASP.NET MVC方面,我该如何处理?

dynamic-data asp.net-mvc-2

5
推荐指数
1
解决办法
618
查看次数

每个视图的ASP.NET MVC 1 ViewModel?

我读过文章" 我们如何做MVC ".在规则#3中,表示"我们每个视图只有一个ViewModel类型".例如,当我们在mvc中搭建脚手架时,它会自动创建5个视图(创建,删除,详细信息,编辑和索引).通过该声明,是否意味着我们必须为该视图创建5个ViewModel?如果我的假设是错误的,那么使用ViewModels的最佳做法是什么?

c# asp.net-mvc viewmodel asp.net-mvc-viewmodel

3
推荐指数
1
解决办法
1616
查看次数

MVC:模型应该继承BLL对象还是包含它?

有什么利弊:

  1. 使用BLL作为模型.
  2. 模型继承BLL.
  3. 型号包含BLL.
  4. 模型只包含将由视图使用的字段.
  5. 还有别的.

背景:我有一些重型BLL课程,大约有100个字段.我将在一个视图中展示其中一些.相关模型应该如何看待.

asp.net-mvc

2
推荐指数
1
解决办法
1148
查看次数

为什么在MVC4中有些人使用ViewModels?

我来自使用MVVM的WPF编程,所以这是我在ASP.NET中使用MVC的第一次体验

我试图做的是展示这个模型:

public class MultipleChoiceQuestion : Question
{
    public string QuestionText
    public List<MultipleChoiceAnswer> PossibleAnswers { get; set; }
}

public class MultipleChoiceAnswer
{
    public string Text { get; set; }
    public string UrlImage { get; set; }
    public bool IsCorrect { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我有一个List<T>,这里是我试图在RadioButtons中显示的地方.我在这个网站上搜索一些数据,我发现主要使用了radioButtons中的ViewModels.

有没有人为ASP.NET MVC实现RadioButtonListFor <T>?

在这里使用ViewModels的目的是什么?如何在单选按钮中显示我的列表?这只是一点点混乱.

asp.net-mvc radio-button asp.net-mvc-4

0
推荐指数
1
解决办法
2460
查看次数