частичный просмотр поста mvc - PullRequest
5 голосов
/ 20 ноября 2010

У меня есть объект компании, у которого есть список объектов филиалов,

в представлении моей компании (находящемся в каталоге компании) есть строго типизированное представление списка филиалов (находящееся в каталоге филиалов),

каждая ветвь в представлении ветвей имеет кнопку удаления, которую я хочу опубликовать в действии удаления в контроллере ветки.

в настоящее время вызванное действие удаления - это то, которое вызывается в контроллере компании

(в компании и филиале есть действие по удалению)

Мне кажется, я понимаю причину, по которой это происходит, но какова наилучшая практика в этой ситуации ...

  1. должно ли частичное представление списка филиалов находиться в каталоге компании или филиала?
  2. должно ли действие удаления филиала находиться в компании или контроллере филиала?

Я думаю, что список филиалов должен находиться в каталоге филиалов и вызывать контроллер филиалов, но как мне это сделать, когда частичное представление загружается в компанию?детали Просмотр?

Надеюсь, что это имеет смысл,

Спасибо,

Марк

        <% foreach (var item in Model) { %>

    <tr>
        <td>
                    <form action="Edit" method="get">
            <input type="submit" value="Edit" id="Submit1" /> 
            <input type="hidden" name="id" value="<%= item.Id %>" /> 
        </form>
        |
        <form action="Branch" method="get">
            <input type="submit" value="Details" id="Submit2" /> 
            <input type="hidden" name="id" value="<%= item.Id %>" /> 
        </form>
        |
        <form action="BranchDelete" method="post">
            <input type="submit" value="BranchDelete" id="Submit1" /> 
            <input type="hidden" name="id" value="<%= item.Id %>" /> 
        </form>

1 Ответ

7 голосов
/ 20 ноября 2010

Вам необходимо окружить каждый набор полей, которые вы хотите отправить, отдельным тегом формы.Вы можете иметь более одного тега формы на странице.Фактически, вы можете захотеть, чтобы каждое частичное представление имело свой собственный тег формы, который подчиняется другому действию контроллера.

Размещайте частичные представления там, где это наиболее целесообразно.Расположение файла не имеет ничего общего с тем, как форма отправляется обратно из браузера.

Вы можете публиковать на разных контроллерах, как это.Одна публикация контроллеру филиала и одна публикация контроллеру компании.

<% using (Html.BeginForm("RemoveBranch", "Branch", FormMethod.Post, new { @class = "branchform" }))
   {

       Html.RenderPartial("~/Views/Branch/BranchView.ascx");    

}%>

<% using (Html.BeginForm("RemoveCompany", "Company", FormMethod.Post, new { @class = "companyform" }))
   {

       Html.RenderPartial("~/Views/Company/CompanyView.ascx");    

}%>

В каждом представлении или в частичном представлении все, что вам нужно, это кнопка отправки:

<input type="submit" value="Delete" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...