📜  返回视图 mvc - C# (1)

📅  最后修改于: 2023-12-03 15:41:55.403000             🧑  作者: Mango

返回视图 MVC - C#

在 ASP.NET MVC 中,返回视图是非常常见的操作。这个过程通常是由控制器的某个操作方法处理的,该方法返回一个视图。

返回视图的基本方法

ASP.NET MVC 中返回视图有其自己的语法。我们可以通过以下方式中的任何一种方式来返回视图:

// 返回 ViewResult
public ViewResult MyAction()
{
    // ...
    return View();
}

// 返回 PartialViewResult
public PartialViewResult MyAction()
{
    // ...
    return PartialView();
}

// 返回 RedirectResult
public RedirectResult MyAction()
{
    // ...
    return Redirect("http://www.example.com");
}

// 返回 RedirectToRouteResult
public RedirectToRouteResult MyAction()
{
    // ...
    return RedirectToRoute("MyRoute");
}

// 返回 JsonResult
public JsonResult MyAction()
{
    // ...
    return Json(new { name = "John", age = 35 }, JsonRequestBehavior.AllowGet);
}

// 返回 FileResult
public ActionResult MyAction()
{
    // ...
    return File("~/Content/MyFile.pdf", "application/pdf");
}
返回视图的注解

我们也可以使用注解来为操作方法指定应返回的视图。例如:

// 返回名为 MyView 的视图
[HttpGet]
[Route("my-action")]
[ActionName("MyAction")]
[Authorize(Roles = "Admin")]
public ActionResult MyAction()
{
    // ...
    return View("MyView");
}
返回数据模型

返回数据模型非常常见,这意味着要将某种形式的数据传递给视图。为了做到这一点,我们需要先确定应该使用什么类型的模型。下面是一些常见的选项:

  • ViewModel (传递多个模型)
  • Viewbag (动态对象)
  • ViewData (字典)

在操作方法中,我们通过将模型传递给 View() 方法来返回数据模型:

public ActionResult MyAction()
{
    MyViewModel model = new MyViewModel();
    // ...
    return View(model);
}

在这个例子中,我们将 MyViewModel 类型的对象传递给 View() 方法。

在 View() 方法中,我们可以将这个模型作为参数传递给视图。在视图中,我们可以使用 Razor 语法访问模型的属性。

小结

在 ASP.NET MVC 中,我们可以通过多种方式返回视图。我们可以返回部分视图、重定向到其他位置、返回 Json 或文件等。我们还可以将数据模型传递给视图,以便在处理视图时能够使用该模型的属性。