GVKun编程网logo

asp.net-mvc-2 – 在IIS 7.5上启用html PUT方法(iis发布html)

3

想了解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-mvc-2 – 在IIS 7.5上启用html PUT方法(iis发布html)

我正在做一个iCal服务,允许在Calendar实例之间进行同步,并在localhost上运行得很棒(在VS2010 Web服务器下)

但是现在我托管在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上失败

asp.net – HTTP PUT在IIS 8.5上失败

这似乎越来越深入IIS而不是我擅长!所以我有一个适用于GET和POST的Web API控制器.第一个屏幕截图显示了GET的处理.一切都很棒,我得到了回应.

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的额外子请求.

解决方法

看看你的场景(感谢分享你的repro项目),问题是投影将webapi放在项目内的/ api文件夹中.

具体来说还有/ 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扩展不返回值

asp.net-mvc – ASP.Net MVC 2.0 Html.HiddenFor HtmlHelper扩展不返回值

我们试图在视图中使用类型安全并使用新的ExpressionInputExtenssion HtmlHelpers,但我们看到一些不一致的结果.我们有一个看起来像这样的视图:

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总是具有正确的值.

解决方法

看起来扩展方法后面的模型绑定器无法将FoodID数据类型转换为字符串.您的数据类型是常规GUID吗?

我知道这个扩展方法有重载使用二进制,但我不确定GUID ….

你有没有试过去补货呢?

asp.net-mvc – ASP.NET MVC Html.RadioButton异常

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文件

asp.net-mvc – asp.net mvc publish不会覆盖cshtml文件

我一直在定期发布我的网站,没有太多麻烦.但今天我注意到它不会用新版本覆盖现有的.cshtml剃刀文件.我发布,查看文件夹,看看文件仍然过时.如果我删除该文件然后发布,它将把新版本放在那里.但是如果文件已经存在,它将不会覆盖它,我的生产网站已经过时了.我尝试了“发布前删除文件”选项,但它给了我一个访问错误,它无法删除文件夹.我尝试删除整个文件夹,但后来我丢失了.svn文件夹,它无法识别版本控制.

有没有办法强制发布命令用最新版本覆盖我的.cshtml文件? (注意:dll文件被覆盖正常)

解决方法

似乎在文件上设置了只读属性,因此无法覆盖它们.检查VS Output窗口是否有错误迹象.

建议:尽量不要在源代码管理中包含生成的文件(这也意味着包含已发布文件的文件夹). 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文件等更多相关知识的信息可以在本站进行查询。

本文标签: