Данные из вида на другой контроллер - PullRequest
0 голосов
/ 20 марта 2012

2 Балла 3 Сообщения Данные из вида на другой контроллер 1 минуту назад | ССЫЛКА

Привет друзья

Я из Колумбии, извините за письмо

У меня естьпроблема, я не знаю, как соединить два контроллера из одного представления, я использую EF Data Base. Во-первых, это автоматические жанровые классы для моей модели, один из этих классов называется «UNIVERSITY», который представляет собой таблицу базы данных, где находятсявсе университеты, и другой класс "CAMPUS_UNIVERSITY", где все кампусы университета, университет может иметь несколько кампусов

У меня есть 2 контроллера и связанные с ними представления

Первый контроллер«Университет» (я думаю, что не обязательно показывать) и ваш взгляд на «Индекс» (список всех Универсиад).Вот что:

@model IEnumerable<RolesMVC3.Models.UNIVERSITY>

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>
<table>
    <tr>
        <th>
            Nombre
        </th>
        <th></th>
    </tr>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Name)
        </td>
        <td>
           @Html.ActionLink("Add Campus", "Create", "CampusUniversity" new { id=item.IdUniversity }) |
            @Html.ActionLink("Edit", "Edit", new { id=item.IdUniversity }) |
            @Html.ActionLink("Delete", "Delete", new { id=item.IdUniversity })
        </td>
    </tr>
}

</table>  

Ссылка «Добавить кампус» направляется в контроллер «CampusUniversity» на действие «Создать».Вот что:

public ActionResult Create()
        {
            ViewBag.IdCityCampus = new SelectList(db.CITY_CAMPUS, "IdCityCampus", "Name");
            ViewBag.IdUniversity = new SelectList(db.UNIVERSITY, "IdUniversity", "Name");
            return View();
        } 

        //
        // 

 [HttpPost]
 public ActionResult Create(CAMPUS_UNIVERSITY campus_university)
        {
            if (ModelState.IsValid)
            {
                db.CAMPUS_UNIVERSITY.AddObject(campus_university);
                db.SaveChanges();
                return RedirectToAction("Index");  
            }

            ViewBag.IdCityCampus = new SelectList(db.CIUDAD_SEDE, "IdCityCampus", "Nombre",  campus_university.IdCityCampus);
            ViewBag.IdUniversity = new SelectList(db.UNIVERSIDAD, "IdUniversity", "Nombre",  campus_university.IdUniversity);
            return View(campus_university);
        }

И связанный вид (представление «Создать» контроллера «CampusUniversity»):

@model RolesMVC3.Models.CAMPUS_UNIVERSITY
@{
    ViewBag.Title = "Create";
}

<h2>Create</h2>

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>SEDE_UNIVERSIDAD</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.IdUniversity, "UNIVERSIDAD")
        </div>
        <div class="editor-field">
            @Html.DropDownList("IdUniversity", String.Empty)
            @Html.ValidationMessageFor(model => model.IdUniversity)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.IdCityCampus, "CITY_CAMPUS")
        </div>
        <div class="editor-field">
            @Html.DropDownList("IdCityCampus", String.Empty)
            @Html.ValidationMessageFor(model => model.IdCityCampus)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.AddressCampus)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.AddressCampuse)
            @Html.ValidationMessageFor(model => model.AddressCampus)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.PhoneCampus)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.PhoneCampus)
            @Html.ValidationMessageFor(model => model.PhoneCampus)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.MailCampus)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.MailCampus)
            @Html.ValidationMessageFor(model => model.MailCampus)
        </div>

        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>
}

<div>
    @Html.ActionLink("Back to List", "Index")
</div>

Я хочу сделать это, нажав «Добавить кампус», появитсяназвание университета происходит из таблицы или класса «УНИВЕРСИТЕТ» в представлении «Создать» (контроллер «SedeUniversidad»), и это может спасти кампус университета, а не то, что я имею сейчас, потому что мне нужно выбрать университет из списка DropDownList,Как я могу это сделать?

Спасибо, благословения!

1 Ответ

0 голосов
/ 20 марта 2012

Я немного не понимаю ваш английский. Похоже, вы хотите отправить данные из представления «Создать» на контроллер университета. Вы можете сделать так, чтобы POST-URL вашей формы перемещался куда угодно, поместив следующие значения в ваш оператор HTML.BeginForm в представлении Create.

@using (Html.BeginForm("ActionName", "ControllerName"))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...