从视图到不同控制器的数据

时间:2012-03-20 16:07:18

标签: asp.net-mvc asp.net-mvc-3 razor

2分 3个帖子 从视图到不同控制器的数据 1分钟前|链接

你好朋友

我来自哥伦比亚,对不起写作

我有一个问题我不知道如何从一个视图连接两个控制器,我正在使用EF数据库第一,这个自动类型类到我的模型,这些类之一被称为“大学”这是一个表所有大学的数据库都在哪里,另一个班级是“CAMPUS_UNIVERSITY”所在的大学校园,大学可以有多个校区

我有2个控制器及其相关视图

第一个控制器是“大学”(我认为我没必要显示)和你的视图“索引”(列出所有Universidadades)。就是这样:

@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 :(得分:0)

我无法理解你的一些英语。听起来您想要将“创建”视图中的数据发送到大学控制器。您可以通过在Create视图中的HTML.BeginForm语句中添加以下值,将表单的POST URL转到任意位置。

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