Questions tagged «asp.net-mvc»

ASP.NET MVC框架是一个开源Web应用程序框架和工具,可实现针对Web应用程序量身定制并基于ASP.NET技术基础的模型-视图-控制器(MVC)模式版本。

5
ASP.NET MVC 5与WebMatrix SimpleMembershipProvider不兼容吗?
我们有一个基于ASP.NET MVC 4和Web API构建的现有应用程序。该站点的管理部分使用简单成员资格。我有兴趣将应用程序升级到MVC 5 / Web API 2,以利用已添加的一些新功能。但是看起来它们可能不兼容。 具体来说,将NuGet的RC软件包安装到我的解决方案中的一个项目中,并更新web.config信息后,该应用程序在启动过程中会在调用的行上开始死亡WebSecurity.InitializeDatabaseConnection(),但以下情况除外: [MethodAccessException: Attempt by security transparent method 'WebMatrix.WebData.PreApplicationStartCode.OnConnectionOpened(System.Object, WebMatrix.Data.ConnectionEventArgs)' to access security critical method 'System.Web.WebPages.HttpContextExtensions.RegisterForDispose(System.Web.HttpContextBase, System.IDisposable)' failed.] WebMatrix.WebData.PreApplicationStartCode.OnConnectionOpened(Object sender, ConnectionEventArgs e) +70 WebMatrix.Data.Database.OnConnectionOpened() +70 WebMatrix.Data.Database.EnsureConnectionOpen() +51 WebMatrix.Data.Database.QueryValue(String commandText, Object[] args) +63 WebMatrix.WebData.DatabaseWrapper.QueryValue(String commandText, Object[] parameters) +13 WebMatrix.WebData.SimpleMembershipProvider.GetUserId(IDatabase db, String userTableName, String …

2
一起使用承载令牌和cookie身份验证
我有一个单页应用程序-或多或少基于MVC5 SPA模板-使用承载令牌进行身份验证。 该站点还具有几个需要保护的常规MVC页面,但使用cookie身份验证。 在Startup.Auth中,我可以启用两种授权类型: app.UseCookieAuthentication(new CookieAuthenticationOptions()); app.UseOAuthBearerTokens(OAuthOptions); 但是,这似乎有一个副作用,就是每当从SPA发送AJAX请求时,它都会在标头和cookie中发送承载令牌。 而我真正想要的行为是仅将承载令牌用于WebAPI调用,仅将cookie用于MVC调用。 我还希望在未经授权时将MVC调用重定向到登录页面(设置为CookieAuthenticationOption),但是显然,我不希望在进行API调用时发生这种情况。 是否可以通过某种方法在一个应用程序中进行这种混合模式身份验证?也许通过路径/路由过滤器?

5
是否可以将JavaScript放在部分视图中
我正在使用Web应用程序,其中主页包含两个部分:始终可见的常量块和由3个局部视图之一组成的信息块。每个部分视图都是AJAX请求的结果,并且仅被加载一次(由jquery提供切换窗口之后)。它运作良好,但我遇到了一个问题。 部分视图的html代码包含在常量块和信息块中使用的js函数。加载页面后,这些函数可以互相“看到”并且可以工作,但是resharper找不到函数声明并就此警告我。由于无法在其代码中找到剃刀语法,因此无法通过将它们传输到外部js文件来解决问题。 我该怎么办? 谢谢。 更新: 最后,我决定解决将我的js代码与视图分离的问题。因此,新的问题是如何将razor语法包含在js文件中,或者可以接受的替代方法是什么。我发现的流行解决方案是使用全局变量,数据属性以及我更喜欢的解决方案-John Katsiotis的RazorJS库。 http://djsolid.net/blog/razorjs---write-razor-inside-your-javascript-files 我希望它能稳定工作并使Resharper开心。 干杯! 更新: 3年后,我想起了这个问题,并决定根据我的经验对其进行更新。实际上,我现在不建议为此使用其他库。尤其是如果您不是项目团队中的唯一成员…最好在所有库中确保它们得到创建者和社区的支持,并且可以轻松集成到您的IDE中(例如,使用特殊语法) 。此外,您团队中的所有人员都应该知道它是如何工作的。所以现在我建议做以下事情: 将所有JS放在单独的文件中。尽可能地隔离它。为此提供外部API。 从您的视图中调用API函数。 将所有Razor生成的URL,文本消息,常量作为资源参数传递。 例如: js文件: $.api.someInitFunction = function(resources){ ... } 视图: <script> $.api.someInitFunction({ urls: { myAction: '@Url.Action("MyAction", "MyController")' }, messages: { error: '@errorMessage' }, consts: { myConst: @myIntConst } }); </script>


5
Html.EnumDropdownListFor:显示默认文本
在我看来,我有一个enumdropdownlist(Asp.Net MVC 5.1中的一项新功能)。 @Html.EnumDropDownListFor(m => m.SelectedLicense,new { @class="form-control"}) 如果执行上面的代码,我将得到以下枚举的下拉列表。 public enum LicenseTypes { Trial = 0, Paid = 1 } 但默认情况下,我希望我的下拉列表具有一个值(自定义文本),这就是我尝试的 @Html.EnumDropDownListFor(m => m.SelectedLicense,"Select a license" ,new { @class="form-control"}) 但是现在的问题是,当我运行它时,我的下拉列表看起来像这样, 因此,我要显示的默认文本在默认情况下不会出现。如果用户选择“选择许可证”并尝试提交表单,则确实会显示“选择许可证”错误,但不会显示为默认文本。我需要改变什么? 附:图像是页面加载时的屏幕截图。默认情况下,它将显示“试用”作为选定选项。

5
如何在Microsoft.AspNet.Identity.EntityFramework.IdentityUser中更改ID的类型
(ASP.NET MVC 5,EF6,VS2013) 我试图弄清楚如何将“ Id”字段的类型从字符串更改为int类型: Microsoft.AspNet.Identity.EntityFramework.IdentityUser 为了使新用户帐户与整数ID而不是GUID相关联。但是,这似乎比在派生的用户类中简单地添加一个类型为int的新Id属性要复杂得多。看一下这个方法签名: (来自程序集Microsoft.AspNet.Identity.Core.dll) public class UserManager<TUser> : IDisposable where TUser : global::Microsoft.AspNet.Identity.IUser { ... public virtual Task<IdentityResult> AddLoginAsync(string userId, UserLoginInfo login); ... } 因此,似乎还有其他方法已植入ASP.NET身份框架中,这些方法要求userId为字符串。我还需要重新实现这些类吗? 关于为什么我不想在用户表中存储ID的GUID的解释: -将有其他表通过外键将数据与用户表相关联。(当用户将内容保存在网站上时。)我没有理由使用较大的字段类型并花费额外的数据库空间,而没有明显的优势。(我知道还有其他关于使用GUID和int id的文章,但是似乎很多人建议int id更快,使用更少的空间,这仍然让我感到疑惑。) -我计划公开一个宁静的端点,以允许用户检索有关特定用户的数据。我认为: /users/123/name 比...干净 /users/{af54c891-69ba-4ddf-8cb6-00d368e58d77}/name 有谁知道ASP.NET团队为何决定以这种方式实现ID?在尝试将其更改为int类型时,我是不是目光短浅?(也许我缺少一些好处。) 谢谢... -本

2
如何使用MVC3 Razor从Viewbag呈现HTML
我正在尝试通过使用Viewbag将表单元素传递到MVC3视图中,并简单地将HTML写入页面... 在控制器中: ViewBag.myData = "<input type=""hidden"" name=""example"" value=""examplevalue"">"; 鉴于(我知道我可以在表格中使用助手): <form action="http://exampleurl/examplepage" method="post" id="example-form"> @ViewBag.myData <input type="hidden" name="anotherexample" value="anotherexamplevalue" /> </form> 这会将myData呈现为HTML中的文本,即: <type="hidden" name="example" value="examplevalue"> 所以我的问题是我如何让Razor做到与旧版相同: <%= myData %> 而不是替换<> 谢谢保罗



4
参数中包含斜线的网址?
题: 我正在创建一个Wiki软件,基本上是Wikipedia / mediawiki的一个副本,但是在ASP.NET MVC中(MVC是关键,因此不建议我使用ScrewTurn)。 现在我有一个问题: 我使用此路由映射来路由URL,例如:http : //en.wikipedia.org/wiki/ASP.NET routes.MapRoute( "Wiki", // Routenname //"{controller}/{action}/{id}", // URL mit Parametern "wiki/{id}", // URL mit Parametern new { controller = "Wiki", action = "dbLookup", id = UrlParameter.Optional } // Parameterstandardwerte ); 现在我想到的可能是像“ AS / 400”这样的标题:http : //en.wikipedia.org/wiki/AS/400 偶然地,还有一个(标题为“斜线”):http : //en.wikipedia.org/wiki// 而这个:http : //en.wikipedia.org/wiki//dev/null …

5
在哪里可以将自定义类放在ASP.NET MVC中?
我有一些实用程序功能和分页功能。我想分别为这些函数创建名为Utility和Pagination的类,以便可以在多个控制器中使用这些类函数。 那么我可以在哪里将这些类放在文件夹结构中,然后如何访问呢?
67 .net  asp.net-mvc 

5
通过ASP.NET MVC Beta中的IP地址限制对特定控制器的访问
我有一个包含AdminController类的ASP.NET MVC项目,并给我类似以下内容的URls: http://example.com/admin/AddCustomer http://examle.com/Admin/ListCustomers 我想配置服务器/应用程序,以便包含 仅从192.168.0.0/24网络(即我们的LAN)访问/ Admin的 我想限制此控制器只能从某些IP地址访问。 在WebForms下,/ admin /是我可以在IIS中限制的物理文件夹...但是对于MVC,当然没有物理文件夹。使用web.config或属性可以实现此目的,还是需要拦截HTTP请求才能实现此目的?

2
如何在Razor视图中使用新的c#8.0功能
我已经更新了ASP.NET Mvc 5 Web应用程序,以通过Visual Studio 2019使用新的c#8.0功能,并且一切正常,直到我尝试在Razor视图中使用这些新功能为止。 例如,如果我尝试使用新的switch表达式: @{ ViewBag.Title = "About"; var foo = 1; var bar = foo switch { 1 => "one", 2 => "two", _ => string.Empty }; } <h2>@ViewBag.Title.</h2> <h3>@ViewBag.Message</h3> <p>Use this area to provide additional information.</p> 直到我尝试访问该页面时,编译器才会抱怨,这给了我编译错误。 我怀疑Microsoft.CodeDom.Providers.DotNetCompilerPlatform必须更新,但似乎没有可用的更新。 有什么方法可以在Razor视图中使用c#8.0语言功能?
14 c#  asp.net-mvc  razor 

1
ASP.NET MVC Core 3.0 API将枚举序列化为字符串
如何在ASP.NET MVC Core 3.0中将Enum字段序列化为String而不是Int?我不能用旧的方式做。 services.AddMvc().AddJsonOptions(opts => { opts.JsonSerializerOptions.Converters.Add(new StringEnumConverter()); }) 我收到一个错误: 无法从“ Newtonsoft.Json.Converters.StringEnumConverter”转换为“ System.Text.Json.Serialization.JsonConverter”

4
如何终止SignalR连接?
我正在使用SignalR在网站上传输数据。但是SignalR应该只能在一段时间内发送数据,并且如果该时间段过去了,则应该终止连接。 $.connection.hub.stop()如果请求仍未完成且未完成,则取消停止功能。但是无论发送了多少数据,都应强制取消此请求。 如何杀死 SignalR-Connection?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.