C# 在MVC中更改视图
我是MVC新手 我需要有两个视图(对于相同的逻辑),一个用于普通浏览器,一个用于移动设备。 如何重定向到手机的不同视图 现在我有两个控制器,但我只想对两个视图使用一个控制器(HomeController.cs)。 我知道这样,我应该在“家”下有我的移动视图。 请帮助我仅使用一个控制器重定向到移动视图 我现在使用下面的重定向(带有两个控制器): 返回重定向操作(“索引”、“移动”)C# 在MVC中更改视图,c#,asp.net-mvc,model-view-controller,mobile,view,C#,Asp.net Mvc,Model View Controller,Mobile,View,我是MVC新手 我需要有两个视图(对于相同的逻辑),一个用于普通浏览器,一个用于移动设备。 如何重定向到手机的不同视图 现在我有两个控制器,但我只想对两个视图使用一个控制器(HomeController.cs)。 我知道这样,我应该在“家”下有我的移动视图。 请帮助我仅使用一个控制器重定向到移动视图 我现在使用下面的重定向(带有两个控制器): 返回重定向操作(“索引”、“移动”) 我正在使用Framework3.5和MVC2添加一个。添加一个。我在描绘您的设置时遇到了一些问题。我猜您有当前的设置
我正在使用Framework3.5和MVC2添加一个。添加一个。我在描绘您的设置时遇到了一些问题。我猜您有当前的设置: 控制器
-HomeController.cs
-MobileController.cs
视图
-主页
--Index.aspx
-移动电话
--Index.aspx
但是你想要:
控制器
-HomeController.cs
视图
-主页
--Index.aspx
-移动电话
--Index.aspx
对吗 更新: Aas的人在下面提到,这是一种“MVC就是这样运作的”交易“主页”是您可以访问的位置,但“手机”是一种特定类型的页面。如果您添加另一个名为“关于”的区域作为新视图子文件夹,您会将移动文件夹放在哪里?移动设备现在应该处理什么?如果mobile不应该复制常规站点,那么它应该有自己的控制器,即使它复制了一些代码(不要忘记,您可以在控制器之外创建类,这些类可以完成任何控制器都可以调用的首要工作)。
另一方面,如果您想要每个页面的移动版本,则应将其添加到每个路由的“视图”文件夹下。例如: 控制器
-HomeController.cs
视图
-主页
-移动电话
--Index.aspx
--Index.aspx
我不确定你在哪里做逻辑来确定他们是否在移动平台上,但假设现在它在你的HomeController.cs中的某个控制器中,那么你有:
public ActionResult Index() {
if([check for mobile])
{
return View("Mobile/Index");
} else {
return View("Index");
}
我很难想象你的设置。我猜您有当前的设置: 控制器
-HomeController.cs
-MobileController.cs
视图
-主页
--Index.aspx
-移动电话
--Index.aspx
但是你想要:
控制器
-HomeController.cs
视图
-主页
--Index.aspx
-移动电话
--Index.aspx
对吗 更新: Aas的人在下面提到,这是一种“MVC就是这样运作的”交易“主页”是您可以访问的位置,但“手机”是一种特定类型的页面。如果您添加另一个名为“关于”的区域作为新视图子文件夹,您会将移动文件夹放在哪里?移动设备现在应该处理什么?如果mobile不应该复制常规站点,那么它应该有自己的控制器,即使它复制了一些代码(不要忘记,您可以在控制器之外创建类,这些类可以完成任何控制器都可以调用的首要工作)。
另一方面,如果您想要每个页面的移动版本,则应将其添加到每个路由的“视图”文件夹下。例如: 控制器
-HomeController.cs
视图
-主页
-移动电话
--Index.aspx
--Index.aspx
我不确定你在哪里做逻辑来确定他们是否在移动平台上,但假设现在它在你的HomeController.cs中的某个控制器中,那么你有:
public ActionResult Index() {
if([check for mobile])
{
return View("Mobile/Index");
} else {
return View("Index");
}
家庭控制器 创建一个类似于 公共行动结果索引() { } 和另一个动作(移动) 公共行动结果手机() { } 单个控制器有多个操作(视图) 控制器 -HomeController.cs 意见 -家 --Index.chtml -流动的
--Index.chtml家庭控制器 创建一个类似于 公共行动结果索引() { } 和另一个动作(移动) 公共行动结果手机() { } 单个控制器有多个操作(视图) 控制器 -HomeController.cs 意见 -家 --Index.chtml -流动的
--Index.chtml谢谢您的回复,但我不想选择Razor和chtml,我喜欢使用aspx页面。@约翰海,该页面有使用WebFormViewEngine的代码,请注意示例中的第3行。@YuriyFaktorovich-这是mvc3的,op已打开mvc2@DanielA.White我认为他应该从MVC3开始,但很明显,从2开始是有原因的。无论如何,该链接也有旧版本的源代码。感谢您的回复,但我不想使用Razor和chtml,我喜欢使用aspx页面。@约翰海,该页面有使用WebFormViewEngine的代码,请注意示例中的第3行。@YuriyFaktorovich-这是mvc3的代码,行动开始了mvc2@DanielA.White我认为他应该从MVC 3开始,但显然有理由从2开始。无论如何,该链接也有旧版本的来源。作为旁白,我开始阅读有关windows 8“metro风格”应用程序的内容,它们似乎本质上针对多个UI目标。作为旁白,我开始阅读有关windows 8“metro风格”的内容应用程序和它似乎是针对多个用户界面的目标本质上你对我目前的设置是正确的,它是完全一样的。对于新设置,我可以完全按照您的建议使用它,或者将移动文件夹放在主文件夹下。我想,只要我对这个问题有不同的看法,就没有什么区别