MVC3局部视图不返回ajax帖子

时间:2013-03-31 02:51:44

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

问题的想法是我有一个" CreateINF"查看然后我显示一个弹出窗口,调用局部视图。在这个弹出窗口中有一个网格,然后当我选择该网格的一个元素时,我想在" CreateINF"上填充一些文本框。查看弹出窗口中选择的元素的信息,但最后一个操作不起作用,我不知道错误在哪里

这是popt" PopTr​​abajador"

@model PagedList.IPagedList<Sistema_GEC_v3.Models.TrabajadorExterno>

@{
    ViewBag.Title = "Buscar Reserva";
}

<h1><strong>Resultado Búsqueda</strong></h1>
<br />

<table id="MainContent_Table2" rules="all" style="border-color: Black; width: 900px; margin-bottom: 0px;" border="1">
    <tr>
        <th style="font-weight: bold; width: 150px;" align="center">

        </th>
        <th style="font-weight: bold; width: 150px;" align="center">
            @Html.LabelFor(modelItem => Model.First().vcNombre)
        </th>
        <th style="font-weight: bold; width: 150px;" align="center">
            @Html.LabelFor(modelItem => Model.First().vcApellidoPaterno)
        </th>
        <th  style="font-weight: bold; width: 150px;" align="center">
            @Html.LabelFor(modelItem => Model.First().vcApellidoMaterno)
        </th>

    </tr>

@foreach (var item in Model) {
    <tr>
    <td align="center"> 
          @using (Ajax.BeginForm("DevolverTrabajador", "Infracciones",
       null
        , new AjaxOptions
        {
            UpdateTargetId = "update-message",
            InsertionMode = InsertionMode.Replace,
            HttpMethod = "POST",
            OnSuccess = "searchSuccess"
        }, new { @id = "searchForm"+@item.idTrabajadorExterno}))
       {

    <div id="update-message" class="error invisible"></div>
        <input data-val="true"  data-val-number="The field idTrabajadorExterno must be a number." data-val-required="El campo idTrabajadorExterno es obligatorio." id="idTrabajadorExterno" name="idTrabajadorExterno" type="hidden" value="@item.idTrabajadorExterno" />   
            @Html.HiddenFor(model => item.idTrabajadorExterno, new { id = "idTrabajadorExterno" + @item.idTrabajadorExterno })
            @Html.HiddenFor(model => item.vcNombre, new { id = "vcNombre" + @item.idTrabajadorExterno })

        <input type="submit" value="Seleccionar" />
       }
       </td>

        <td style="font-weight: normal; width: 150px;" align="center">
            @Html.DisplayFor(modelItem => item.vcNombre)
        </td>       
        <td style="font-weight: normal; width: 150px;" align="center">
            @Html.DisplayFor(modelItem => item.vcApellidoPaterno)
        </td>
        <td style="font-weight: normal; width: 150px;" align="center">
            @Html.DisplayFor(modelItem => item.vcApellidoMaterno)
        </td>


    </tr>
}

</table>

这是视图&#34; CreateINF&#34;

@model Sistema_GEC_v3.Models.Infraccion

@{
    ViewBag.Title = "Create";
}

<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>
    <link href="@Url.Content("~/Content/themes/base/jquery.ui.all.css")" rel="stylesheet" type="text/css" />
    <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>    
    <script src="@Url.Content("~/Scripts/jquery-ui-1.8.11.min.js")" type="text/javascript"></script>

<script type="text/javascript">
    var linkObj;
    //$(document).ready(function () {
    $(function () {
        $(".busqueda").button();

        $('#dialog').dialog({
            autoOpen: false,
            width: 930,
            resizable: false,
            title: 'hi there',
            modal: true
        });

        $(".busqueda").click(function () {
            linkObj = $(this);
            var dialogDiv = $('#dialog');
            var viewUrl = linkObj.attr('href');
            $.get(viewUrl, function (data) {
                dialogDiv.html(data);
                dialogDiv.dialog('open');
            });
            return false;
        });
    });
        function searchSuccess() {
            var id = $("#update-message").html();
            var parent = linkObj.closest("tr");
            document.getElementById('tipoTrabajador').value = $("#vcNombre" + id.toString()).val();
            $('#dialog').dialog('close');
        }

        function actualizarVentanaModal(viewUrl) {
            var dialogDiv = $('#dialog');
            $.get(viewUrl, function (data) {
                dialogDiv.html(data);
            });
        }

   // });

</script>

<div id="commonMessage"></div>

<div id="dialog" title="Seleccionar Cliente"></div>

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

        <div class="editor-label">
            @Html.LabelFor(model => model.vcCodigoInfraccion)
        </div>
        <div class="editor-field">
            @Html.TextBoxFor(model => model.vcCodigoInfraccion, new { id = "tipoTrabajador" })
            @Html.ValidationMessageFor(model => model.vcCodigoInfraccion)
        </div>

        <a class="busqueda" href= "@Href("~/Infracciones/PopTrabajador")"> <img src="@Href("~/Content/Images/buscar.png")" alt="0" title="Buscar" id="" border="0" height="16" width="16"/></a>

      </fieldset>

    <p>
    <input value="Guardar" type="submit" name = "button"/>
    </p>
}

这是控制器

public ActionResult PopTrabajador(int? page, string tipoTrabajador)
        {
            int tamPag = 10;
            int numPag = page ?? 1;
            var trabajadoresE = dbTExterno.trabajadoresExternos.OrderBy(t => t.vcNombre);

            return PartialView("PopTrabajador", trabajadoresE.ToPagedList(numPag, tamPag));
        }



        [HttpPost]
        public ActionResult DevolverTrabajador(TrabajadorExterno trabajador)
        {
            try
            {
                return Content(trabajador.idTrabajadorExterno.ToString());
            }
            catch (Exception e)
            {
                return RedirectToAction("General", "Error");
            }
        }


        public ActionResult CreateINF()
        {
            return View();
        } 

        //
        // POST: /Infracciones/Create

        [HttpPost]
        public ActionResult CreateINF(FormCollection collection)
        {
            try
            {
                // TODO: Add insert logic here

                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }

0 个答案:

没有答案