问题标签 [asp.net-mvc-3]

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.

0 投票
1 回答
1720 浏览

razor - Razor 视图中的服务器端代码

有没有办法在 Razor 视图引擎中创建这样的功能?

0 投票
3 回答
17795 浏览

visual-studio-2010 - 在 ASP.NET MVC 3 Beta 中专门使用 Windows 身份验证的问题

我正在 ASP.NET MVC 3 Beta 中创建一个 Intranet 站点,并希望专门使用 Windows 身份验证。另外,我想在VS2010中使用Visual Studio Development Server。

我修改了默认的 web.config 文件以删除对表单身份验证的所有引用并切换到此:

但是,当我启动我的网站并获得默认页面时,我会收到以下回复:

这导致我的浏览器中出现此消息:

“/”应用程序中的服务器错误。

无法找到该资源。

说明:HTTP 404。您要查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请查看以下 URL 并确保其拼写正确。

请求的 URL:/Account/Login

版本信息:Microsoft .NET Framework 版本:4.0.30319;ASP.NET 版本:4.0.30319.1 版本:4.0.30319.1

如果我在“使用 Visual Studio 开发服务器”下的项目属性中选择“NTLM 身份验证”,那么我在连接时正确得到以下回复:

但是当我进行身份验证时,我得到了 302

我认为这只是清除一些默认值的问题,但不确定(“/Account/Login”没有出现在我的 web.config 文件中的任何位置)。如果我删除“拒绝”部分,那么一切正常,除了我没有获得经过身份验证的委托人并且有效地保持匿名。

我相信这曾经在 ASP.NET MVC 2 和 VS2008 中工作,只需将身份验证模式更改为 Windows,但它似乎不再那样工作了。

我知道我可能缺少一些基本的东西。谢谢!

注意:这个问题类似于“限制匿名访问 ASP.Net MVC 站点的问题”问题,但不同之处在于我想专门使用 Windows 身份验证。

0 投票
1 回答
181 浏览

asp.net-mvc - 我需要 ASP.NET MVC 3 应用程序的身份验证建议

我有一个可供公众使用的 Web 应用程序。此应用程序具有登录凭据要求。

我不想创建另一个您必须创建自定义用户名/密码组合的站点,除非您真的想要。我想支持 Facebook、Twitter 等 3rd 方登录...

最后,这个网站也可以在 Azure 云中运行,所以我对任何特别之处持开放态度。

需要注意的一点是,作为 ASP.NET 一部分的 Microsoft Membership Provider 是一种很好的方法,可以将自定义登录名/密码很好地集成到 MVC 代码中。我希望提供者开放以允许第 3 方登录。

有没有人有任何推荐的解决方案,他们已经取得了很好的成功?

0 投票
1 回答
58978 浏览

razor - 使用 _viewstart.cshtml 和部分 Razor 视图的正确方法?

我正在使用_viewstart.cshtml自动为我的视图分配相同的 Razor 布局

这是我的 Views 文件夹根目录中的一个简单的文件,如下所示:

这比在每个视图中添加 @Layout 指令更干。

但是,这给 Razor局部视图带来了问题,因为它们运行 _viewstart.cshtml 的内容,因此错误地为自己分配了一个布局,这使得它们,嗯,不再是局部的。

这是一个假设项目,显示了 _viewstart.cshtml 文件、共享的 _layout.shtml 文件和一个局部视图(“AnonBar.cshtml”)。

示例项目结构

目前,我解决这个问题的方法是在每个部分视图中添加以下行:

这似乎是在 Razor 中将视图表示为部分视图的错误方式。(请注意,与 Web 表单视图引擎不同,部分视图的文件扩展名是相同的。)

我考虑过的其他选择,但更糟糕的是:

  • 将所有部分视图放入一个公用文件夹,以便它们可以共享一个公用 _viewstart.cshtml。这打破了视图与其控制器位于同一文件夹中的约定。
  • 不使用局部视图。

这是 Razor 视图引擎团队仍在充实的东西,还是我错过了一个基本概念?

0 投票
2 回答
1968 浏览

asp.net-mvc - 使用 MVC 3 (ASPX ViewModel) 显示数据库中的 HTML

我在存储和显示 SQL 数据库中的数据时使用 MVC 3(ASPX ViewModel)。我尝试使用原始输入来存储它以及使用 HttpUtility.HtmlEncode。当我尝试显示时,两者都不起作用。我试过使用 HttpUtility.HtmlDecode 以及使用<%: Model.MyHtmlVariable %>. 我错过了什么吗?

0 投票
8 回答
16831 浏览

asp.net - 表单身份验证部分配置的 ASP.NET MVC 问题

我有一个在 IIS 上运行的 ASP.NET MVC 3 Beta 应用程序。在我的web.config定义中,我定义了以下负责表单身份验证的部分:

定义的登录地址是~/Account/LogOn

当我尝试使用以下方式获取登录网址时:

我收到:/VNK/site/Account/Login

为什么我得到的地址与 中定义的地址不同web.config

更新:“/VNK/site/”前缀在这里不是问题。问题是类的LoginUrl属性FormsAuthentication不反映来自 web.config 的值。这意味着如果我将loginUrlweb.config 中的属性值从“~/Account/LogOn”更改为“~/foobar”,FormsAuthentication.LoginUrl仍然具有“/VNK/site/Account/Login”的值。为什么 ?

0 投票
3 回答
3996 浏览

asp.net-mvc - 如何将数据传递给 mvc asp.net 中的视图?

让我先问这个问题。

调用加载要在视图上显示的值列表的函数的正确位置在哪里?

我创建一个这样的控制器

模型就像

哪个创建一个像

那么,如何以及在哪里将 getSeaSettings() 的返回值传递给视图?

谢谢

0 投票
7 回答
205178 浏览

razor - 如何在剃刀中使用三元运算符(特别是在 HTML 属性上)?

对于 WebForms 视图引擎,我通常将三元运算符用于非常简单的条件,尤其是在 HTML 属性中。例如:

上面的代码将根据用户是否通过身份验证给<a>标签一个类别auth或。anon

Razor 视图引擎的等效语法是什么?因为 Razor 需要 HTML 标签来“知道”何时跳入和跳出代码和标记,所以我目前遇到以下问题:

说得委婉一点,这很可怕

我很想做这样的事情但我很难理解在 Razor 中如何:

--

更新:

同时,我创建了这个 HtmlHelper:

可以从 Razor 中这样调用:

不过,我希望有一种方法可以使用三元运算符,而不会退回到将其包装在扩展方法中。

0 投票
1 回答
505 浏览

c# - xval 与 MVC 3.0 验证

我想知道是否有人对 xVal 或 MVC 3.0 模型验证的使用有任何意见?我最初开始使用 xVal 是因为它能够同时验证客户端和服务器端,但该项目似乎已经死了(也许休眠是一个更好的词),而且 MVC 2.0 和 3.0 中的验证似乎有了很大的改进。与 MVC3.0 验证相比,使用 xval 有什么优势(如果有的话),反之亦然?

任何建议表示赞赏,

谢谢

J.P

0 投票
2 回答
917 浏览

msbuild - 如果在 global.asax 中定义了视图引擎命名空间导入,则 aspnet_compiler 无法编译包含 Razor 视图的 Web 项目

我刚刚尝试使用我们的标准构建脚本(rake,但这并不重要)使用 Razor Views 构建一个新的 MVC 项目。

在开发项目时,我注意到 Razor 目前不尊重 web.config 中的命名空间导入,但允许您在 global.asax 中包含命名空间。我实际上对此更满意,因为如果它破坏了您的整个应用程序,我认为不需要配置您的导入。

但是,当使用 aspnet_compiler 编译网站时,它不会运行 global.asax,因此不会导入命名空间,并且不会编译任何视图。有没有办法解决这个问题,理想情况下,我想尝试将我的视图编译为构建脚本的一部分,以尽快捕获错误,但在这个阶段,我很高兴能够从构建中发布网站脚本。