我创建了一个简单的ASP.NET MVC 1.0版应用程序.我有一个ProductController,它有一个动作索引.在视图中,我在Product子文件夹下创建了相应的Index.aspx.
然后我引用了Spark dll并在同一Product视图文件夹下创建了Index.spark.Application_Start看起来像
protected void Application_Start()
{
RegisterRoutes(RouteTable.Routes);
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new Spark.Web.Mvc.SparkViewFactory());
ViewEngines.Engines.Add(new WebFormViewEngine());
}
Run Code Online (Sandbox Code Playgroud)
我的期望是,由于Spark引擎在默认WebFormViewEngine之前注册,当浏览Product controller中的Index操作时,应该使用Spark引擎,并且WebFormViewEngine应该用于所有其他URL.
但是,测试显示Product控制器的Index操作也使用WebFormViewEngine.
如果我注释掉WebFormViewEnginer的注册(代码中的最后一行),我可以看到Index动作由Spark引擎呈现,其余的URL生成错误(因为defualt引擎已经消失),它证明了我所有的Spark代码是正确的.
现在我的问题是视图引擎是如何解决的?为什么注册序列不生效?
从ASP.NET MVC中,是否可以基于访问设备/浏览器路由到不同的控制器或操作?
我正在考虑为我的网站的某些部分设置替代操作和视图,以防从iPhone访问它,以优化它的显示和功能.我不想为iPhone创建一个完全独立的项目,因为大多数网站在任何设备上都可以.
有关如何做到这一点的任何想法?
我希望这个问题能够自我描述.
我目前正在开发一个在数据层中使用MS SqlServer数据库的asp.net网站.
而且我在想我有什么选择来获得移动版本(最重要的是支持BlackBerry和iPhone以及希望每个移动设备!),当在黑莓上使用时,我希望能够让它在BB的背景下运行.
我在考虑asp.net移动控件,但项目页面看起来像一个死/未更新的框架,并不确定是否只支持Windows手机或什么!
编辑 感谢您的问题,但他们都只是从一个相关的问题解决了我的问题.我的意思是如何让我使用BlackBerry Appliction选项,例如让我的网站在设备后台运行或向我的用户发送通知!