2010-10-13 19 views
0

J'ai deux une méthode d'action -> RoleURLManagementHttp demande après ne pas être remarqué sur ASP.NET MVC déploiement

qui diffère avec son paramètre d'entrée dans l'obtenir par rapport au poste que nous avons

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

et

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

le get est ramenons une page basée sur l'identifiant dans l'URL. La publication devrait mettre à jour cet enregistrement.

Maintenant,

cela fonctionne parfaitement localement sur ma machine, Mais j'ai déployé, il ne reconnaît pas le message du tout.

Je ne sais pas pourquoi cela se produit, dans la vue J'ai un BeginForm posté à cette méthode.

Wow

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" /> 

<% } %> 
+0

J'ai Request.Form ["t"]; dans ma méthode de publication ne sais pas si cela fait une différence avec quoi que ce soit? – Calibre2010

+0

fondamentalement son ne pas distinguer get et post je pense – Calibre2010

+0

Pouvez-vous poster le balisage? – Kev

Répondre

0

Hmm ... ne sais pas pourquoi cela est fonctionne pas ... voici quelques idées à coups de couteau:

1) Vous n'êtes pas passer l'identifiant dans la méthode de publication?

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

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

2) Voir si cela fonctionne lors de l'acceptation d'un FormCollection au lieu de aspnet_Roles: (alors obtenir le rôle basé sur l'identification, et faire une UpdateModel (rôle) pour appliquer les modifications)

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

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

de Bien sûr, aucun d'entre eux n'explique pourquoi cela fonctionne différemment sur votre machine que le serveur. Avez-vous différentes versions d'IIS? RC de MVC 2? Bonne chance ...

+0

Hmm semble ne pas encore distinguer les noms d'action sur le serveur web – Calibre2010