Http пост-запрос не замечен при развертывании MVC ASP.NET - PullRequest
0 голосов
/ 13 октября 2010

У меня есть два метода действия -> RoleURLManagement

, который отличается от входного параметра в get по сравнению с постом, поэтому мы имеем

     [AcceptVerbs(HttpVerbs.Get)]
     public ActionResult RoleURLManagement(string id)
     {
     }

и

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult RoleURLManagement(aspnet_Roles rt)
    {
    }

Get возвращает страницу на основе идентификатора в URL. Почта должна обновлять эту запись.

Теперь

это прекрасно работает на моей машине, Но я развернул его, он вообще не распознает почту.

Не уверен, почему это происходит, в представлении у меня есть публикация BeginForm для этого метода.

Ух

HTML

<% using (Html.BeginForm("RoleURLManagement", "Role", FormMethod.Post))
    {%>

 <fieldset>
  <%--  <legend>Fields</legend>--%>

    <div class="display-label">ApplicationId</div>
    <div class="display-field"><%: Model.ApplicationId%></div>
    <%: Html.TextBoxFor(model => model.ApplicationId, new {@class   = "RemoveAttribute" })%>

    <div class="display-label">RoleId</div>
    <div class="display-field"><%: Model.RoleId%></div>
    <%: Html.TextBoxFor(model => model.RoleId, new {@class = "RemoveAttribute" })%>

    <div class="display-label">RoleName</div>
    <h1><div class="display-field"><%: Model.RoleName%></div></h1>
  <%: Html.TextBoxFor(model => model.RoleName, new {@class = "RemoveAttribute" })%>
    <%: Html.TextBox("RoleName") %>


    <div class="display-label">LoweredRoleName</div>
    <div class="display-field"><%: Model.LoweredRoleName%></div>
    <%: Html.TextBoxFor(model => model.LoweredRoleName, new {@class = "RemoveAttribute" })%>

    <div class="display-label">Description</div>
    <div class="display-field"><%: Model.Description%></div>
    <%: Html.TextBoxFor(model => model.Description, new {@class = "RemoveAttribute" })%>

</fieldset>


 <div class="siteCheck"> 
 <%=Html.SiteMapCheckBoxManagement("checkManagememt", Model)%>
 <%=Html.TextArea("t")%>
 </div>

 <input type="submit" value="Map Sites to Role" />

 <% } %>

1 Ответ

0 голосов
/ 15 октября 2010

Хм ... не уверен, почему это не сработало ... вот несколько идей:

1) Вы не передаете идентификатор в метод post?

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult RoleURLManagement(string id)
{
}

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult RoleURLManagement(string id, aspnet_Roles rt)
{
}

2) Проверьте, работает ли он при принятии FormCollection вместо aspnet_Roles: (затем получите роль на основе ID и выполните UpdateModel (роль), чтобы применить изменения)

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult RoleURLManagement(string id)
{
}

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult RoleURLManagement(string id, FormCollection form)
{
}

Конечно, ни один из них не объясняет, почему он работает иначе на вашей машине, чем на сервере. У вас есть разные версии IIS? РЦ МВЦ 2?

Удачи ...

...