想了解asp.net-mvc-2–在IIS7.5上启用htmlPUT方法的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于iis发布html的相关问题,此外,我们还将为您介绍关于asp.net
想了解asp.net-mvc-2 – 在IIS 7.5上启用html PUT方法的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于iis发布html的相关问题,此外,我们还将为您介绍关于asp.net – HTTP PUT在IIS 8.5上失败、asp.net-mvc – ASP.Net MVC 2.0 Html.HiddenFor HtmlHelper扩展不返回值、asp.net-mvc – ASP.NET MVC Html.RadioButton异常、asp.net-mvc – asp.net mvc publish不会覆盖cshtml文件的新知识。
本文目录一览:- asp.net-mvc-2 – 在IIS 7.5上启用html PUT方法(iis发布html)
- asp.net – HTTP PUT在IIS 8.5上失败
- asp.net-mvc – ASP.Net MVC 2.0 Html.HiddenFor HtmlHelper扩展不返回值
- asp.net-mvc – ASP.NET MVC Html.RadioButton异常
- asp.net-mvc – asp.net mvc publish不会覆盖cshtml文件
asp.net-mvc-2 – 在IIS 7.5上启用html PUT方法(iis发布html)
但是现在我托管在Windows 2008 R2(IIS 7.5.7600)上,我无法创建甚至不更新事件:-o
雷鸟总是说
所以我冲进fiddler,发现了问题所在
405错误
那说不允许PUT
总结
以上是小编为你收集整理的asp.net-mvc-2 – 在IIS 7.5上启用html PUT方法全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
asp.net – HTTP PUT在IIS 8.5上失败
View Full Size
但后来我提出了一个PUT请求,这一切都崩溃了.它似乎穿过ManagedPipelineHandler,然后进入DefaultDocumentModule并以405失败.
View Full Size
View Full Size
没有安装WebDAV,我试图在web.config级别删除它.处理程序被覆盖以支持PUT.
<handlers> <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> <remove name="OPTIONsverbHandler" /> <remove name="TRACEVerbHandler" /> <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" /> </handlers>
尽管如此,ASP.NET无法处理请求,我正在寻找有关调试的一些想法?这是失败的动作方法,PUT和一个有效的动作方法,一个GET.
public class ProductsController : ApiController { [HttpPut] [Route("api/products")] public AddProductResponse AddProduct(AddProductRequest request) { return new AddProductResponse(); } [HttpGet] [Route("api/products/manufacturers")] public ManufacturersResponse GetProductManufacturers() { var productService = new ProductService(); var manufacturers = productService.GetManufacturers(); return new ManufacturersResponse { Manufacturers = manufacturers.OrderBy(m => m.BusinessName) }; } }
似乎我在请求生命周期的早期错过了手.
FREB似乎显示了PUT的GENERAL_SHILD_REQUEST_START,不知道为什么托管管道正在创建最终落入无法处理PUT的DefaultDocumentModule的额外子请求.
解决方法
具体来说还有/ api / products,所以当http / ap的/ api /产品被命中时,IIS将其视为目录浏览请求,并拒绝在其上提供PUT动词.
解决方案:重命名api文件夹,通常尝试不在正在调用REST API的位置映射文件夹.这不是部署中的问题,但在本地Web应用程序上,文件夹就在那里,IIS首先处理它.
另一种解决方案(虽然不太推荐)是使用
<modules runAllManagedModulesForAllRequests="true" />
这将让ASP.NET在IIS之前获得第一次破解,但这不是一个推荐的做法,只是为了解决这样的小问题.
asp.net-mvc – ASP.Net MVC 2.0 Html.HiddenFor HtmlHelper扩展不返回值
ViewData.Model.FooID = <%= ViewData.Model.FooID %>< Model.FooID = <%= Model.FooID %> <%= Html.HiddenFor(x=>x.FooID) %>
但是我们在渲染视图中看到的是:
ViewData.Model.FooID = 515b0403-e75b-4bd7-9b60-ef432f39d338 Model.FooID = 515b0403-e75b-4bd7-9b60-ef432f39d338 <input id="FooID" name="FooID" type="hidden" value="" />
我可以手动添加这个:
<input id="FooID" name="FooID" type="hidden" value="<%= Model.FooID %>" />
但是现在我们不再,但令人惊讶的是,当我这样做时,Html.HiddenFor总是具有正确的值.
解决方法
我知道这个扩展方法有重载使用二进制,但我不确定GUID ….
你有没有试过去补货呢?
asp.net-mvc – ASP.NET MVC Html.RadioButton异常
<label for="gender">Gender</label> <%= Html.RadioButton("gender",1) %> Male <%= Html.RadioButton("gender",2) %> Female <%= Html.ValidationMessage("gender") %>
请注意,当用户最初看到此输入时,两个按钮均未选中。
验证是强制他们选择并不接受默认。
因此,这两个单选按钮被绑定到一个可空的int属性,在我的模型中声明为:
public int? gender { get; set; }
所以如果他们没有选择一个按钮并提交该页面,那么gender属性将为空,表示它们没有被选择。控制器在发布过程中调用以下验证:
if (!gender.HasValue) ModelState.AddModelError("gender","gender required");
但是,如果验证失败(他们没有选择),那么在渲染阶段,MVC框架会抛出以下异常:
System.NullReferenceException was unhandled by user code Message="Object reference not set to an instance of an object."
在寻找解决这个问题的方法时,我注意到有几个问题。
我正在使用ASP.NET MVC 1.0。我在代码中找到了使用.NET Reflector抛出此错误的地方。
问题是如何使这项工作正常?
编辑:添加堆栈跟踪:
System.NullReferenceException was unhandled by user code Message="Object reference not set to an instance of an object." Source="System.Web.Mvc" StackTrace: at System.Web.Mvc.HtmlHelper.GetModelStateValue(String key,Type destinationType) at System.Web.Mvc.Html.InputExtensions.InputHelper(HtmlHelper htmlHelper,InputType inputType,String name,Object value,Boolean useViewData,Boolean isChecked,Boolean setId,Boolean isExplicitValue,IDictionary`2 htmlAttributes) at System.Web.Mvc.Html.InputExtensions.RadioButton(HtmlHelper htmlHelper,Object value) at ASP.views_vbs_register_aspx.__RenderregisterContent(HtmlTextWriter __w,Control parameterContainer) in c:\Users\David\Documents\BellevueProject\Bellevue\BellevueTeachers\Forms\Views\VBS\Register.aspx:line 42
解决方法
如果我不执行验证步骤,但是当然需要验证,则不会出现此问题。
这给了我一个解决方案的线索。
ValidationMessage HtmlHelper方法接受一个字符串参数,该参数是要验证的属性或模型对象的名称。
我刚才把这个名字改成“gender2”,如下所示:
<label for="gender">Gender</label> <%= Html.RadioButton("gender",2) %> Female <%= Html.ValidationMessage("gender2") %>
而且我更改了验证码来引用这个新名称(即使该属性不存在,它仍然可以使用):
if (!gender.HasValue) ModelState.AddModelError("gender2","gender required");
这可以按需要工作。
我会以为其他应该是有效的,但这是一个简单的解决方法,我在这里记录。
编辑:
顺便说一下,我尝试将gender属性更改为字符串而不是可空的int,并发生相同的确切问题。
该工作仍然似乎在为验证消息使用不同的密钥名称。
asp.net-mvc – asp.net mvc publish不会覆盖cshtml文件
有没有办法强制发布命令用最新版本覆盖我的.cshtml文件? (注意:dll文件被覆盖正常)
解决方法
建议:尽量不要在源代码管理中包含生成的文件(这也意味着包含已发布文件的文件夹). VCS工具通常会锁定他们所处理的文件.
在Test / Prod服务器上安装.svn文件也不是一个好主意.
今天关于asp.net-mvc-2 – 在IIS 7.5上启用html PUT方法和iis发布html的介绍到此结束,谢谢您的阅读,有关asp.net – HTTP PUT在IIS 8.5上失败、asp.net-mvc – ASP.Net MVC 2.0 Html.HiddenFor HtmlHelper扩展不返回值、asp.net-mvc – ASP.NET MVC Html.RadioButton异常、asp.net-mvc – asp.net mvc publish不会覆盖cshtml文件等更多相关知识的信息可以在本站进行查询。
本文标签: