草庐IT

lib.web.mvc

全部标签

c# - ASP.NET Odata Web API 的错误处理

我很想知道在ODataController中引发异常所遵循的最佳实践是什么。如果您在方法中引发异常,默认情况下它会转换为响应代码500,并且内容包含有关错误的详细信息。我想明确响应代码,并在key无效的情况下发送400。例如:如果输入请求有一个无效的键想返回400的HttpResponseCode并且内容应该有类似于引发异常的错误详细信息。非常感谢您的意见 最佳答案 OData(至少从v3开始)使用specificjson表示错误:{"error":{"code":"Acustomerrorcode","message":{"lan

c# - 如何在 ASP.NET MVC 站点中实现速率限制?

我正在构建一个ASP.NETMVC站点,我想在其中限制经过身份验证的用户使用站点某些功能的频率。虽然我了解速率限制的基本工作原理,但我无法想象如何在不产生主要代码味道的情况下以编程方式实现它。您能否用C#示例代码向我指出一个简单而强大的解决方案来解决此类问题?如果重要的话,所有这些功能目前都表示为仅接受HTTPPOST的操作。我最终可能还想为HTTPGET函数实现速率限制,因此我正在寻找适用于所有此类情况的解决方案。 最佳答案 如果您使用的是IIS7,您可以查看DynamicIPRestrictionsExtension.另一种可能

c# - ASP.NET Web API 和 [Serializable] 类

我有一个标有[Serializable]的类。当我从WebAPI返回它时,字段名称都很奇怪。通常返回的JSON是[{"OrderId":797...使用[Serializable]时返回的JSON[{"k__BackingField":797...我不想将其标记为可序列化以使用BinaryFormatter进行缓存。除了编写自定义序列化程序或制作不可序列化的孪生类并编写猴子代码以在两者之间“转换”之外,还有其他方法吗? 最佳答案 您只需要一行代码就可以让Json.NET再次忽略[Serializable]语义:((DefaultCo

c# - 如何转换 web.config 值?

我正在尝试为不同的情况(调试、发布等)制作不同的配置文件,我想为不同的构建更改一些设置。Custormer1-13256如何将标记内的值更改为其他值?ex.Customer2-343242 最佳答案 将xdt:Locator="Match(name)"添加到Erwin'sanswerCustomer2-343242 关于c#-如何转换web.config值?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.c

c# - web.config asp.net中的oracle数据库连接

我知道我可以在C#类本身中创建一个连接字符串,但我试图避免这样做。我想在web.config中创建连接,我读到它更安全。尽管如此,我找不到任何指定了以下属性的示例:HostnamePortSIDUsernamePasswordConnectionName有人可以帮忙在webconfig中创建这个吗?我正在连接到Oracle数据库。 最佳答案 这是模板:这是我的一个-减去真实的TNS名称和用户名和密码: 关于c#-web.configasp.net中的oracle数据库连接,我们在Stac

c# - Hangfire.Autofac 与 MVC 应用程序 - 注入(inject)失败

我正在尝试创建一个简单的Hangfire测试,但它不起作用。这是所有重要的代码,以及我如何使用Hangire.Autofac配置它。不知道我在这里错过了什么。我在/hangfire仪表板中遇到的异常也在下面。publicclassAmazonSqsService:IAmazonSqsService{privatereadonlyIBackgroundJobClient_backgroundJobClient;privatereadonlyILogService_logService;publicAmazonSqsService(IBackgroundJobClientbackgroun

c# - 在 Visual Studio Online Build Definition 中从具有多个 Web 项目的解决方案构建一个 Web 项目

我遇到一个问题,我需要从一个在VisualStudioOnline中包含两个Web项目的解决方案构建一个Web项目。我还没有找到如何使用“VisualStudioBuild”步骤仅构建一个项目。如果存在通过“VisualStudio构建”步骤执行此操作的方法,那就太好了。我还尝试使用“MSBuild”步骤。不幸的是,我在使用Nuget恢复包时遇到了问题。我收到错误:##[error]未找到文件格式header,##[error]从工具NuGet.exe返回意外退出代码1。运行后立即:Nuget.exe恢复Myproj.csproj。总结:如何在VisualStudio在线构建定义中从具

C# ASP.NET MVC : When to update LastActivityDate?

我正在使用ASP.NETMVC并创建一个公共(public)网站。我需要跟踪在线用户。我看到在asp.net中执行此操作的标准方法是跟踪LastActivityDate。我的问题是我应该什么时候更新它?如果每次用户点击某处时我都更新它,我会感到性能下降。但是,如果我不这样做,只会四处冲浪的人将被列为离线。在asp.netMVC中执行此操作的最佳方法是什么? 最佳答案 只需在您的母版页底部放置一个ajaxjavascript调用来跟踪它。此时不要担心性能。如果它已经实现并且您发现它是一个问题,那么回过头来寻找更好的解决方案。如此简单的

c# - ASP.NET MVC - HTML.BeginForm 和 SSL

我在ASP.NETMVC2中遇到了一个应该是简单登录表单的问题。基本上我的表单看起来有点像这样:using(Html.BeginForm("LogOn","Account",new{area="Buyers"},FormMethod.Post,new{ID="buyersLogOnForm"}))我在LogOnAction方法上有一个RequiresHTTPS过滤器,但是当它执行时我收到以下消息TherequestedresourcecanonlybeaccessedviaSSL此时唯一可行的解​​决方案是传递一个额外的操作html属性,如下所示:varactionURL="https

c# - 在 MVC View 中使用 switch case

在MVCView中,我有一个“for”命令,我想在每个值中写入指定的标记。我在这里给你展示一个简单的案例:@for(vari=0;i@(switch(i){case0:???//write"CustomValue1"break;case1:???//write"CustomValue2"break;})}我使用MVC4RazorView。提前感谢您抽出时间。 最佳答案 这很简单,您使用与此相同的代码,它工作正常。@for(vari=0;i@switch(i){case0:CustomValue1break;case1:CustomV