Невозможно вызвать действие из представления в его путь в asp.net mvc - PullRequest
0 голосов
/ 14 января 2011

Я разрабатываю модуль загрузки изображений для моего приложения asp.net mvc. для этого я частично пишу код на странице просмотра как

//Other html code...
 <div id="popuup_div" class="popup_msg">
  <form action="/UserProfile/uploadfile" method="post" enctype="multipart/form-data">
    <%= Html.Hidden("userIdForFile",Model.UserId) %>
   <p>
     <label for="ProfilePhoto"><%= Resources.Global.ProfilePhoto %>:</label>
     <input type="file" name="pPhoto"  />
   </p>
   <input type="submit" value="upload" /> |<input type="button" value="close" onclick="javascript:$('#popuup_div').hide();" />    
  </form>
</div>

//Other html code...

Но не удалось вызвать действие после публикации кода. почему это должно быть кто-нибудь может мне помочь?

Отредактировано:

     <% using (Html.BeginForm("uploadfile", "UserProfile", FormMethod.Post, new { id = "testform", enctype = "multipart/form-data" }))
             {%>
            <%= Html.Hidden("userIdForFile", Model.UserId)%>
           <p>
             <label for="ProfilePhoto"><%= Resources.Global.ProfilePhoto%>:</label>
             <input type="file" name="pPhoto"  />
           </p>
           <input type="submit" value="upload" /> |<input type="button" value="close" onclick="javascript:$('#popuup_div').hide();" />    
 <% } %>


    **Edited**

В Firebug я получил этот текст моего HTML с подсветкой: alt text

1 Ответ

1 голос
/ 14 января 2011

Подозреваю, что при публикации сайта задействуется виртуальный каталог.Таким образом, /UserProfile/uploadfile больше не является правильным URL.Чтобы избежать этого, вы никогда не должны жестко кодировать свои URL, как это.Я бы порекомендовал вам использовать помощники HTML.

Итак:

<% using (Html.BeginForm("uploadfile", "UserProfile", null, FormMethod.Post, new { enctype = "multipart/form-data" })) { %>
    ...
<% } %>
...