草庐IT

c# - 将 Web 服务从 asmx 升级到 webAPI

我正在构建一个当前使用传统.asmx网络服务的网络应用程序,我希望将这些服务升级到WebAPI。我在网上四处张望,但我正在寻找进行此升级的最简单/最快的方法。Web服务目前看起来有点像这样:usingSystem.Web.Services;[WebService(Namespace="http://tempuri.org/")][WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)][System.Web.Script.Services.ScriptService]publicclassSomeWebServiceName:

c# - 在 ASP.Net MVC 站点中有条件地包含基于调试或生产的局部 View

我有一个局部View,其中仅包含基本HTML,没有Razor代码或模型。我用它来为页面布局设置一些“指南”。当站点在Debug模式下运行时,仅包含此部分内容的正确/最简单方法是什么?我知道在编译后的代码中,我可以在C#代码中使用指令来包含部分。Razor有类似的东西吗? 最佳答案 您可以使用HttpContext.Current.IsDebuggingEnabled来检查web.config的调试设置:@if(HttpContext.Current.IsDebuggingEnabled){//Dosomethinghere.}或使用

c# - Web API 2 - 实现补丁

我目前有一个实现RESTFulAPI的WebAPI。我的API模型如下所示:publicclassMember{publicstringFirstName{get;set;}publicstringLastName{get;set;}publicDateTimeCreated{get;set;}publicDateTimeBirthDate{get;set;}publicboolIsDeleted{get;set;}}我实现了一个PUT方法来更新与此类似的行(为简洁起见,我省略了一些不相关的内容):[Route("{id}")][HttpPut]publicasyncSystem.Th

c# - MVC 路由 - 参数名称问题

我正在寻找有关使用C#在MVC中进行路由的信息。我目前非常了解MVC中路由的基础知识,但我正在寻找的东西有点难以找到。实际上,我想找到一种定义采用单个参数的单个路由的方法。我在网上找的常见例子都是围绕着例子routes.MapRoute("Default","{controller}.mvc/{action}/{id}"new{controller="Default",action="Index",id=""});通过映射这个路由,你可以映射到任何Controller中的任何Action,但是如果你想将任何东西传递给Action,方法参数必须称为“id”。如果可能的话,我想找到解决这个

c# - 有条件地将 htmlAttributes 添加到 ASP.NET MVC Html.ActionLink

我想知道是否可以在方法调用中有条件地添加参数。例如,我在我的Site.Master中呈现一堆链接(总共六个)用于导航:|如果链接在该页面上,我想为该链接包含一个CSS类“selected”。所以在我的Controller中我要返回这个:ViewData.Add("CurrentPage","About");returnView();然后在View中我有一个htmlAttributes字典:htmlAttributes=newDictionary();htmlAttributes.Add("class","selected");%>现在我唯一的问题是如何为正确的ActionLink包含h

c# - ASP.NET MVC3 + ActionFilterAttribute + 注入(inject)?

嘿,我已经成功地在我的FilterAttribute中使用属性注入(inject),但是我想知道是否可以将它移到构造函数中?我当前的代码://AuthAttribute.cspublicclassAuthAttribute:ActionFilterAttribute{publicRoles_authRoles{get;privateset;}[Inject]privatereadonlyIAuthorizationService_service;publicAuthAttribute(Rolesroles){_authRoles=roles;}publicoverridevoidOnA

c# - MVC 提交按钮未触发

我正在使用带有Razor引擎的ASP.netMVC4。我有一个页面(Index.cshtml)和一个Controller(HomeController.cs)我正在尝试将我的提交按钮连接到Controller中的操作结果-但我似乎无法触发它。我的HTML:@using(Html.BeginForm("SubmitForm","Home",FormMethod.Post)){******lotsofotherhtmlhere*******Save}我的Controller:publicclassHomeController:Controller{publicActionResultInd

c# - 在已经登录的情况下处理登录期间的防伪造错误? ASP.NET MVC

当用户登录时,并转到登录页面。如果他再次尝试登录,您将收到防伪错误。Theanti-forgerytokencouldnotbedecrypted.IfthisapplicationishostedbyaWebFarmorcluster,ensurethatallmachinesarerunningthesameversionofASP.NETWebPagesandthattheconfigurationspecifiesexplicitencryptionandvalidationkeys.AutoGeneratecannotbeusedinacluster.我得到的另一种错误是:T

c# - 向 ASP.NET Core MVC 中的所有响应添加 header

我想知道如何将Access-Control-Allow-Origin:*添加到我的header中。我试过失败:app.Use((context,next)=>{context.Response.Headers.Add("Access-Control-Allow-Origin",new[]{"*"});returnnext.Invoke();}); 最佳答案 使用app.use(...)和变异context.Response.Headers来自内部Startup.Configure是正确的,但重要的是在链中的正确位置进行。ASP.NE

c# - 在 mvc 3.0 及更高版本中实现验证码

我在mvc4.0应用程序和我的引用中使用了验证码:Asp.NetMVCCAPTCHA但它基于mvc2.0实现,它显示图像,但在Controller中我没有任何OnPreAction方法,我将其替换为OnAuctionExcuting,但其中没有MethodInfo。如何更新代码以在mvc3.0或4.0上运行? 最佳答案 只需使用Nuget获取Recaptcha包,然后按照以下步骤操作:http://www.tkglaser.net/2011/10/google-recaptcha-in-aspnet-mvc-3-using.html