1

我是 mvc 的新手。由于缺乏知识,我无法做一件事。假设我有视图 Index.cshtml 并且此视图位于主文件夹中。我在主文件夹中有注册文件夹,在注册文件夹中有名为 register.cshtml 的视图。我在主文件夹中有另一个名为目录的文件夹。当我将运行我的应用程序时,默认情况下索引视图将呈现,并且会有两个按钮或两个链接按钮。一个是按钮文本是目录,另一个按钮文本是注册。

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

另一个问题是,当从一个视图导航到另一个视图时,我如何也传递我的模型或视图模型。

使用示例代码寻找帮助和概念。谢谢

4

2 回答 2

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

于 2013-08-19T14:36:30.200 回答
0

在您各自的按钮单击处理程序中调用适当的 /controller/action。

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

public ActionResult Register()
{
return View();
}
于 2013-08-19T11:58:08.160 回答