相关疑难解决方法(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万
查看次数

ASP.net MVC - 每个视图或每个动作一个ViewModel?

每个视图或每个控制器操作一个ViewModel是一个更好的主意吗?

例:

public ProjectController : Controller
{
    public ActionResult Edit(int id)
    {
        var project = ...;

        return View(new ProjectEditViewModel(project));
    }

    [HttpPost]
    public ActionResult Edit(ProjectEditViewModel model)
    {
    }

    **OR**

    [HttpPost]
    public ActionResult Edit(Project model)
    {
    }

    [HttpPost]
    public ActionResult Edit(ProjectEditPostViewModel model)
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

以下是三个选项,哪个最好?

  1. 对我的POST/GET操作使用相同的ViewModel.
  2. 使用ViewModel进行我的GET操作,使用我的域模型进行POST操作.
  3. 使用不同的ViewModel进行GET,使用不同的ViewModel进行POST.

.net c# asp.net-mvc

14
推荐指数
1
解决办法
3440
查看次数

ASP.NET MVC - 填充常用的下拉列表

我想知道在ASP.NET MVC中填充常用的下拉列表时最佳做法是什么.例如,我有一个国家和州选择,在我的应用程序中经常使用.对于我希望包含这样一个下拉列表的每个视图来说,填充viewmodel并从我的控制器绑定到该viewmodel似乎很脏.

在这种情况下,人们如何填充他们的下拉列表? - 这个烤制的自定义基类?助手班等?

提前致谢,

J.P

c# asp.net-mvc drop-down-menu

10
推荐指数
1
解决办法
1519
查看次数