问题标签 [asp.net-mvc-2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net-mvc-2 - ASP.NET MVC 中“管理员”应用程序的站点导航
我为我的 ASP.NET MVC 应用程序创建了一个名为“Admin”的区域项目。
这将包含站点管理部分的所有逻辑,用户可以在其中添加/删除页面等。
顶部有一个菜单,用户可以管理的内容。(例如“内容”、“用户”等)
对于其中的每一个,我都在制作一个控制器('ContentController'、'UsersController' 等)
我想知道如何设置导航,因为似乎有不同的方法。
一种方法是使用 MvcSiteMap,它涉及创建一个“.sitemap”文件并使用“MvcSiteMapNode”属性在我的控制器上装饰操作。
上面的问题是实现起来很复杂(尤其是在 Area 项目中,因为 Areas 在 ASP.NET MVC 中的工作方式)。这似乎也有点矫枉过正。
我想出了一个不同的方法,就是用我自己的属性来装饰每个控制器。然后我有一个辅助方法,它通过使用反射循环遍历每个控制器来呈现我的导航,挑选出具有该属性的那些,然后将它们添加到导航菜单中。
您对上述方法有何看法?你能想出一种更简单的方法吗?
asp.net-mvc-2 - ASP.NET-MVC2 预览版 1:是否有任何重大更改?
- 我正在关注 Steven Sanderson 的“ Pro ASP.NET MVC Framework ”一书。
- 在第 132 页,按照作者的建议,我下载了 ASP.NET MVC Futures 程序集,并将其添加到我的 MVC 项目中。
- 然后,在没有作者鼓励的情况下,我下载、安装了 ASP.NET MVC2 Preview 1 dll 并将其合并到我的项目中。
- 现在,我无法再加载该网站。
- 也就是说,当我在 Visual Studio 中按 F5 时,我得到了这个错误。
回想起来,我认为假设 ASP.NET MVC2 预览版 1 只会是附加的,这是一个非常糟糕的主意。但我希望其他人参与进来。
有没有人注意到 ASP.NET MVC 2 Preview 1 中的任何重大变化?
另外 - 有没有人注意到影响温莎城堡的任何变化?
另外,如果我应该注意 IIS6 与 IIS7 的后果,请告诉我。
asp.net-mvc - ASP.NET MVC 2 Preview 1 - 编译 StructureMap 控制器工厂的问题
我有一个项目,我使用 StructureMap 进行依赖注入。该项目作为 MVC 项目编译得很好,但是在将所有内容移动到 MVC2 项目后,我现在收到以下错误:
Test.Web.Controllers.StructureMapControllerFactory.GetControllerInstance(System.Type)':找不到合适的方法来覆盖 C:\Test\Web\Controllers\StructureMapControllerFactory.cs 11 40 Test.Web
这是我的 StructureMapControllerFactory:
我发现一篇与这个问题半相关的帖子,但它没有提供任何关于如何解决我的问题的见解:MVC 2 preview 1 - methods with parameters in the controller failed to load
显然,我一定错过了 1.0-2.0 进程的变化,但我不确定发生了什么变化。任何帮助总是受到赞赏。
asp.net-mvc - ASP.NET MVC 2 Preview 1 - DataAnnotation Validation with complex model object
让模型处理自己的验证的能力使我开始使用 MVC 2 预览版。到目前为止,我喜欢验证方案的简单性。然而,我遇到了障碍。这种验证风格适用于简单的视图模型对象。例如,如果我有一个名为car的模型对象,并且我希望创建一个视图来创建一辆新车:
- - -模型 - - - -
- - -控制器 - - - - -
- - - -看法 - - - - - - -
这就像一个魅力。但并不是我所有的观点或模型对象都是简单的。我可能有一个汽车模型对象,例如:
- - -模型 - - - -
- - - -看法 - - - - - - -
当我将PaintScheme属性添加到我的视图时,它们不会与传递给我的控制器操作的“myCar”对象一起使用。有没有办法解决这个问题,而不必从表单集合中重建对象然后检查 ModelState?
asp.net-mvc - 定义 ASP.NET MVC 路由的方法
我想知道您是否可以向我展示在 ASP.NET MVC(1 和 2)中声明路由的所有各种方法。请解释定义路由的每种方法,如何使用它,以及它涵盖的情况。
这是我希望在这里收集的示例:
Directors
=路线的名称。 Directors/{filter}/{skip}
= 网址定义。 new { controller = "Directors", action = "Index", skip = 0, filter = "" }
= 此路由的默认值。 new { skip = @"\d+", filter = @"^[a-zA-Z]+.+" }
= 这条路线的约束。
.net - 没有调用带有 ASP.NET MVC 的 HttpModule
我正在尝试在 ASP.NET MVC 2 Preview 1 应用程序中实现每请求会话模式,并且我已经实现了 IHttpModule 来帮助我做到这一点:
我已经把它放到了 web.config 中:
然而,“初始化!” 永远不会被写入页面(我使用的是内置的 VS Web 服务器,Cassini)。此外,我尝试在 SessionModule 中放置断点,但它们永远不会中断。我错过了什么?
asp.net-mvc-2 - 将内容访问逻辑放在 BaseController 中是个好主意吗?
我正在开发一个 ASP.NET MVC 应用程序,其中任何页面的内容都可以从数据库中提取(如果存在)并显示在页面上。
这是为了使非技术人员能够编辑内容而无需进入源代码(例如视图)并进行更改。
我这样做的方式是,每个控制器都派生自一个基本控制器。基本控制器重载“OnActionExecuted”并借此机会提取分配给当前动作/控制器的任何内容。
如果操作返回派生自“ContentViewModel”的 ViewModel,它会使用数据库中的文本填充 ViewModel 的“Text”属性。
然后文本由视图呈现。
你能看出这个设计有什么弱点吗?
如果我有用于提取内容的 HtmlHelper 扩展而不是基本控制器,那会更好吗?我从视图中调用它?
我问这个的一个原因是,拥有我自己的基本控制器似乎会干扰调用“Html.RenderAction”,这似乎期望指定的控制器直接从“System.Web.Mvc.Controller”继承。
c# - ASP.NET MVC - 来自控制器代码的当前操作?
这与最近的另一个问题非常相似:
但是,我想从控制器代码中获取当前操作的名称。
因此,在由 Action 调用的函数代码中,我想获取当前 Action 名称的字符串。
这可能吗?
redirect - 在 RenderAction 调用之间维护 ViewData
我正在我网站的每个页面上使用 Html.RenderAction 呈现一个常见的登录表单。
如果用户在文本框中输入他们的详细信息并单击“提交”,它会向处理登录的控制器发出 POST。
如果他们犯了错误,例如输入了无效的电子邮件地址,它将在 ModelState 中填充错误消息,然后重定向回他们之前所在的任何页面。
问题是,因为 RenderAction 作为单独的请求发生,我丢失了 ViewModel。
即使我将它放入 TempData 它也会丢失,因为 TempData 在每个单独的请求中都会被刷新。
有没有办法在连续的 Html.RenderAction 调用之间保存数据?
如果没有,关于我如何破解这个的任何建议?(应该把数据放在Session中?)
c# - ASP.NET MVC 2 DisplayFor()
我正在查看新版本的 ASP.NET MVC(如果您还没有看到,请参阅此处了解更多详细信息),并且在显示对象的内容时遇到了一些非常基本的问题。
在我的控件中,我有一个类型为 的对象Person
,我将其传递给 中的视图ViewData.Model
。到目前为止一切都很好,我可以在视图中提取对象以供显示。我不明白的是,我需要如何调用该Html.DisplayFor()
方法才能将数据显示在屏幕上。我试过以下...
但我收到以下消息:
CS0136:不能在此范围内声明名为“p”的局部变量,因为它会给“p”赋予不同的含义,后者已在“父或当前”范围中用于表示其他内容
我知道这不是我应该做的——我知道重新定义变量会产生这个错误,但我不知道如何从控制器访问对象。所以我的问题是,如何将对象传递给视图以显示其属性?
注意我应该补充一点,我在有限的业余时间阅读这个,所以我完全有可能错过了一些基本的东西。
TIA