我是mvc的新手。由于缺乏知识,我无法做一件事。假设我查看了Index.cshtml,这个视图驻留在主文件夹中。我在主文件夹和寄存器文件夹中有注册文件夹,有一个名为register.cshtml的视图。我在主文件夹中有另一个名为catalog的文件夹。当我将运行我的应用程序然后默认索引视图将呈现,并将有两个按钮或两个链接按钮。一个是按钮文本是目录,另一个按钮文本是注册。
当用户单击注册按钮时,应加载注册视图,当用户单击目录按钮时,应加载目录视图。我怎么能这样做?我需要编写什么样的代码以及我需要为global.asax文件中的映射编写哪种代码?
另一个问题是,当从一个视图导航到另一个视图时,我怎么能通过我的模型或视图模型。
寻求帮助&示例代码的概念。感谢
答案 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();
}