gpt4 book ai didi

asp.net-mvc - 您是否应该有单独的 View 模型用于 Controller 的输入和输出

转载 作者:行者123 更新时间:2023-12-02 17:38:15 26 4
gpt4 key购买 nike

我是 ASP.NET MVC 新手。我有这个 Controller ,它接受一些参数,然后返回一个根据输入参数获取数据的 View 。

我想接受输入参数作为对象(例如,我想要一个具有这三个参数作为其属性的人员类,而不是名字、姓氏和年龄)。现在我的问题是输入参数类(Person类)是否有资格称为 View 模型?如果是。我是否使返回 View 模型成为此类的一部分?

换句话说,首选下面两种方法中的哪一种

情况1:输入和返回相同的类

public ActionResult GetPersonDetails(Person p)
{

return View(new Person {....})

}

情况2:输入和返回单独的类

public ActionResult GetPersonDetails(Person p)
{

return View(new PersonDetails {....})

}

最佳答案

Now my question is does the input parameter class (Person class) qualify to be called view model?

是的。

If yes. Do I make the return view model a part of this class?

不一定。您可以将不同的 View 模型传递给 View ,作为 Controller 操作作为参数的 View 模型,尽管这是一种罕见的情况。这实际上取决于您的具体情况,但一般模式如下:

[HttpGet]
public ActionResult Index()
{
MyViewModel model = ...
return View(model);
}

[HttpPost]
public ActionResult Index(MyViewModel model)
{
if (!ModelState.IsValid)
{
// Some validation error occurred => redisplay the same view so
// that the user can fix his errors
return View(model);
}

// at this stage the view model has passed all validations =>
// here you could attempt to pass those values to your backend

// TODO: do something with the posted values like updating a database or something

// Finally redirect to a successful action Redirect-After-Post pattern
// http://en.wikipedia.org/wiki/Post/Redirect/Get
return RedirectToAction("Success");
}

关于asp.net-mvc - 您是否应该有单独的 View 模型用于 Controller 的输入和输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18385022/

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