如何在mvc中的视图之间导航

时间:2013-08-19 11:52:47

标签: asp.net-mvc

我是mvc的新手。由于缺乏知识,我无法做一件事。假设我查看了Index.cshtml,这个视图驻留在主文件夹中。我在主文件夹和寄存器文件夹中有注册文件夹,有一个名为register.cshtml的视图。我在主文件夹中有另一个名为catalog的文件夹。当我将运行我的应用程序然后默认索引视图将呈现,并将有两个按钮或两个链接按钮。一个是按钮文本是目录,另一个按钮文本是注册。

当用户单击注册按钮时,应加载注册视图,当用户单击目录按钮时,应加载目录视图。我怎么能这样做?我需要编写什么样的代码以及我需要为global.asax文件中的映射编写哪种代码?

另一个问题是,当从一个视图导航到另一个视图时,我怎么能通过我的模型或视图模型。

寻求帮助&示例代码的概念。感谢

2 个答案:

答案 0 :(得分:1)

考虑到您的问题,我想出了一个想法,即您对Web应用程序的了解来自ASP.NET,文件夹用于对Web应用程序中的不同区域进行分类。如果我是对的,你应该在ASP.NET中使用控制器映射文件夹在ASP.NET MVC中(这不是很好的类比,但是对于启动是有帮助的)。通过这种方式,您将拥有三个控制器或一个具有三个操作的控制器。我要选择第二个。

控制器:

public class HomeController : Controller
{
    public ActionResult Index()
    {
       var model = new TheViewModel(); 
       return View(model);
    }

    public ActionResult Register()
    {
        return View();
    }

    public ActionResult Catalog()
    {
        return View();
    }
}

查看:

@model MvcApplication1.ViewModels.TheViewModel
@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

@Html.ActionLink("Register", "Register")
<br/>
@Html.ActionLink("Catalog", "Catalog")

您的第二个问题已在Passing ViewModel in ASP.Net MVC from a View to a different View using Get

处得到解答

答案 1 :(得分:0)

在相应的按钮点击处理程序中调用相应的/ controller / action。

对于注册按钮处理程序,将其指向/home/register. 查看您的注册功能。 在您的家庭控制器的注册操作中,返回您想要显示的视图。

public ActionResult Register()
{
return View();
}