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

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 回答
3071 浏览

asp.net-mvc - 缺少尾部斜杠的虚拟目录

我们目前正在开发一个 ASP.NET MVC 5.1 应用程序,用于部署到我们不会控制其 IIS 配置的客户站点。该应用程序使用 ASP.NET Identity 2.0.0 进行身份验证和用户管理。在内部测试期间,我们在运行 Windows Server 2012 R2 和 IIS 8 的测试服务器上的虚拟目录(作为单独的应用程序和单独的应用程序池下)中有不同的实例。

我报告了一个错误,尝试使用以下 URL 登录 -

https://server.domain.com/VirtualDirectory/Account/Login?ReturnUrl=%2fVirtualDirectory

导致用户登录但被重定向回登录页面而不是应用程序根/主页的循环。这里明显的突出点是虚拟目录名称中缺少尾部斜杠。如果提供了编码的尾部斜杠,或者 returnUrl 被省略或不是本地 URL,则应用程序正确重定向成功。

这不是我们的登录逻辑的问题,因为已经登录并位于应用程序根目录的用户将被重定向回登录页面,只需删除虚拟目录名称后的尾部斜杠即可离开 -

https://server.domain.com/VirtualDirectory

根据IIS 在请求不带斜杠的文件夹时生成礼貌重定向-

“当浏览器请求诸如 http://www.servername.de/SubDir之类的 URL 时,浏览器将被重定向到 http://www.servername.de/SubDir/。在 URL 的末尾包含一个斜杠... Internet 信息服务器 (IIS) 首先将 SubDir 视为应返回给浏览器的文件。如果找不到此文件,IIS 会检查是否存在具有此名称的目录。如果具有此名称的目录存在时,将带有 302“对象已移动”响应消息的礼貌重定向返回给浏览器。此消息还包含有关带有尾部斜杠的目录的新位置的信息。反过来,浏览器向带有斜杠的 URL。”

事实上,虽然我得到了 Fiddler 的以下回复-

获取https://server.domain.com/VirtualDirectory

302 重定向到 /VirtualDirectory/Account/Login?ReturnUrl=%2fVirtualDirectory

默认路由未从 Microsoft 模板修改 -

家庭控制器装饰有 [Authorize] 属性,这当然需要未经身份验证的用户才能登录。

与身份验证相关的 Web.config 设置是 -

实践证明,forms 元素是必要的,可以正确映射到登录页面并防止继承配置在应用程序的根目录中查找 login.aspx 页面。该配置与 Startup.Auth.cs 的配置相匹配,即 -

问题—— _

什么是在 returnUrl 未修改/不正确的情况下无条件地生成 302 重定向到登录页面(无论用户是否已经登录,都会发生这种情况),以及如何恢复所描述的在附加斜杠的情况下执行 302 重定向的行为。

如果我可以有条件地使用正确的返回 URL 定向到登录页面,那就更好了,但主要要求是首先避免错误地重定向到登录页面和后续循环。如果 302 重定向到应用程序根,然后进一步重定向到登录页面(用户未通过身份验证或他们的票已过期),那么这是可以接受的。

我已经研究过 URL 重写,但开发人员事先并不知道域和虚拟路径,因为每个客户站点上的这些可能不同——主机服务器上虚拟目录的使用或其他方式也是如此。

0 投票
2 回答
15709 浏览

jquery - Ajax 在 MVC AsP.net 中发布表单(验证)?

所以我有一个页面,上面有一些表格,其中一个表格是一个具有三个功能的地址。另存为新,更新和删除。我想使用 form.submit() 在客户端和服务器端触发 MVC 验证,但我不想刷新整个页面。

所以这就是我想使用简单的 form.submit() 来收集元素并将其作为模型发送到 ASP.net MVC 控制器并根据我在模型上拥有的属性处理验证并使用回调处理 JSON 响应以仅更新受影响的区域。

我知道我可以使用 jQuery 创建 AJAX 发布请求,但我必须处理所有事情,即绑定到视图模型、验证和创建请求本身。无论如何我可以充分利用这两种方法吗?

0 投票
1 回答
1479 浏览

connection-string - MVC 5 项目部署 - SQLExpress 数据库文件自动创建错误

已解决:发现问题,原来是我留下的旧会员提供程序系统中的一些代码。一旦它遇到它,它就尝试创建会员存储,默认为 SQL Express 实例。

将 MVC 5 项目部署到 Web 服务器时出现以下错误:

建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定的实例)

说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

SQLExpress 数据库文件自动创建错误:

连接字符串使用应用程序 App_Data 目录中的数据库位置指定本地 Sql Server Express 实例。提供者试图自动创建应用程序服务数据库,因为提供者确定该数据库不存在。成功检查应用程序服务数据库是否存在并自动创建应用程序服务数据库需要以下配置要求:

我不明白为什么它试图创建一个 SQL Express 实例,我的 web.config 中没有指定。我有一种预感(基于我必须添加的任何具体内容)这可能与 MVC 5 Identity 的工作方式有关。下面是我的 web.config:

这是我的 web.release.config:

干杯!

0 投票
6 回答
16091 浏览

jquery - 通过 ajax 执行 post 时,返回 Bad Request 而不是 JSON 结果

Javascript

在 Chrome 中

标头

回复

[{"Name":"Nome","ErrorMessage":"campo obrigatório."}]

在铬中工作!


在 IE8 中

标头(请求)

标头(响应)

不行!!

ASP.NET MVC

筛选

应用于 GlobalFilterCollection

控制器

扩展

问题

  • 为什么没有 xhr.resposeText 对象?
  • 如何以与在 Chrome 中恢复相同的方式检索 JSON?

我需要 JSON 来填充表单!

备注:2014 年 3 月 11 日

当我添加Response.TrySkipIisCustomErrors = true;我的控制器时,它可以工作!responseText 返回 json。为什么?

0 投票
1 回答
670 浏览

c# - Asp.Net Mvc 5中控制器类中带有过滤器属性的MvcSiteMapProvider菜单

我正在使用这个库:https ://github.com/maartenba/MvcSiteMapProvider

我想要一个这样的菜单结构:

我正在使用没有 xml 的 MvcSiteMapNode;只是以装饰者的方式。

所以我有这个控制器:

我的问题是,当我获取 url /Stuff/ 时,未选择索引节点,而仅选择了父节点(stuff-key)。即使我 GET /Stuff/Index 发生同样的情况。

0 投票
1 回答
509 浏览

asp.net-web-api - 从 webapi 生成一个 auth cookie 以在 web 应用程序中使用

我已经设法让不记名令牌在 api 项目中工作。

在我的解决方案中,我有 2 个项目一个 api 和 mvc 应用程序。api 处理承载令牌的身份验证和生成。

我想从 mvc 应用程序调用 api 进行身份验证并能够设置身份验证 cookie 以与 mvc 应用程序一起使用。

我的 Web 应用程序没有标准的帐户控制器操作。我已删除所有操作,并且只有一个操作,如下所示。我的 api 应该照顾一切。

简短的问题是如何。

我在我的 mvc 应用程序中创建了一个操作来调用 api 应用程序中的 /token 端点。

在我调用 /Token 端点后,如何设置本地身份验证 cookie 以允许 webapp 在我的控制器上使用 [Authorize] 属性?

先感谢您。

0 投票
1 回答
3105 浏览

jquery-validate - MaxLength 属性和不显眼的验证

如果我将 a 添加MaxLengthAttribute到这样的属性中:

标记呈现如下:

验证结果如下所示:

在此处输入图像描述

这显然不是预期的结果。文本区域应该允许比“-1”更多的字符。

我可以想出多种方法来解决这个问题(例如,通过 jQuery 删除属性,使用 javascript 手动更新规则等)。

解决这个问题的最优雅的方法是什么?这是 MVC/Validator 的错误吗

0 投票
1 回答
122 浏览

c# - 创建新的复杂对象;EF 尝试创建新的相关对象而不是关联

这是场景。
示例模型:

在我看来,要创建 Foo 对象,它有一个已经存在的 Bar 对象的 DropDownList。
此 DropDownList 的值与 Bar 的 Id 一起。
像这样的东西:

提交表单时,MVC 将值正确地绑定到 Foo 对象,并创建一个仅设置了 Id 的新 Bar 对象。

当我尝试保存对象时,EF 返回异常。它尝试创建一个 Bar 对象,但会失败,因为 Bar 对象只设置了 Id。
我认为 EF 足够聪明,可以在 Bar 中设置 Id 并获取它。

所以我的问题是:有没有办法通过导航属性设置关系而不必先获取它?

我的模型的导航属性没有暴露的外键,我正在寻找不需要它的解决方案。

0 投票
1 回答
1793 浏览

c# - 继承视图模型并更改 DisplayName 数据注释

我有一个从基类视图模型继承的视图模型。我正在尝试更改继承类中的 DisplayName 元数据,但它不起作用。

以下是视图模型:

和控制器:

呈现视图时,预期的显示名称是“派生描述”,但我得到的是“基本描述”。

使用:MVC 5.1、.NET Framework 4.5、Visual Studio 2013

谁能告诉我如何覆盖派生类中的显示数据注释?

0 投票
1 回答
735 浏览

autofac - Autofac MVC5 和 WebAPI2.1 不工作

这是我Bootstrap在 global.asax 中的

这是实现

这是我的例外:

如何修复它以使用 WebApi 和 Mvc 控制器?