.net mvc加载包含jquery的局部视图

时间:2011-02-14 17:30:17

标签: javascript .net jquery asp.net-mvc ajax

嗨,我是mvc和web开发的新手;我想做这样的事情

然后当您单击编辑时,页面将加载类似的内容。

我正在使用ajax来做到这一点,但问题是当我点击编辑ajax时不要使用我的任何脚本,我的意思是日期时间选择器脚本不起作用,或任何其他javascript。

Mi代码就像这样

我的主要观点:

<div id="Estudiantes del tutor">
            </br>
            <table style="margin-left:auto; margin-right:auto;">
                <tr>
                    <th>Código</th>
                    <th>Estudiante</th>
                    <th></th>
                </tr>
                <% foreach (var item in Model.Hijos) { %>
                    <tr>
                        <td>
                            <%: Html.Encode(item.PersonaNaturalId.ToString("D8")) %>
                        </td>
                        <td>
                            <%: Html.Encode(item.Nombre +" "+item.ApellidoPaterno+ " "+ item.ApellidoMaterno) %>
                        </td>
                        <td>
                            <%: Html.ActionLink("Editar", "EditarEstudiante", new { tutorId = Model.TutorBE.PersonaNaturalId ,estudianteId = item.PersonaNaturalId }) %>
                              |
                            <%: Ajax.ActionLink("Editar", "EditarEstudiante", new { tutorId = Model.TutorBE.PersonaNaturalId ,estudianteId = item.PersonaNaturalId }, new AjaxOptions { UpdateTargetId = "DatosEstudiante"})%>
                        </td>
                    </tr>
                <% } %>
            </table>
    </div>
    <br/>
    <br/>
    <br/>
    <div id="DatosEstudiante">

    </div>

我的部分观点如下:

    <link href="../../Content/Site.css" rel="stylesheet" type="text/css" />
    <link href="../../Content/SiteHeinrich.css" rel="stylesheet" type="text/css" />
    <script src="../../Scripts/jquery-1.4.1.js" type="text/javascript"></script>
    <script src="../../Scripts/jquery-ui-1.8.8.custom.min.js" type="text/javascript"></script>
    <link href="../../Content/blitzer/jquery-ui-1.8.8.custom.css" rel="stylesheet" type="text/css" />
    <link href="../../Content/VocacionalSite.css" rel="stylesheet" type="text/css" />
    <script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script>
    <script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
    <script src="../../Scripts/MicrosoftMvcValidation.debug.js" type="text/javascript"></script>

<br /> <%= Html.ValidationSummary("Por favor corrija los errores e intente de nuevo.")%> <%using (Html.BeginForm())  { %> <%: Html.ValidationSummary(true) %> <div id="DatosGenerales">
    <fieldset style="margin-left: auto; margin-right: auto;">
        <legend>Datos generales del estudiante</legend>
        <div id="Nombres del estudiante">
            <div id="Nombre" style="float: left; margin-left: auto; margin-right: auto; width: 250px;">
                <%: Html.Label("Nombres: ") %>
                <br />
                <%: Html.TextBox("Nombres", Model.Estudiante.Nombre, Model.Estudiante.Nombre != null ? new {@readonly ="readonly"} : null )%>
                <%: Html.ValidationMessage("Nombres","*") %>
            </div>
            <div id="ApellidoPaterno" style="float: left; margin-left: auto; margin-right: auto;
                width: 250px;">
                <%: Html.Label("Apellido paterno: ") %>
                <br />
                <%: Html.TextBox("ApellidoPaterno", Model.Estudiante.ApellidoPaterno, Model.Estudiante.ApellidoPaterno != null ? new { @readonly = "readonly" } : null)%>
                <%: Html.ValidationMessage("ApellidoPaterno","*")%>
            </div>
            <div id="ApellidoMaterno" style="float: left; margin-left: auto; margin-right: auto;
                width: 250px;">
                <%: Html.Label("Apellido materno: ") %>
                <br />
                <%: Html.TextBox("ApellidoMaterno", Model.Estudiante.ApellidoMaterno, Model.Estudiante.ApellidoMaterno != null ? new { @readonly = "readonly" } : null)%>
                <%: Html.ValidationMessage("ApellidoMaterno", "*")%>
            </div>
        </div>
        <br />
        <div id="Otros datos generales" style="clear: both;">
            <br />
            <script>
                $(function () {
                    $("#datepicker").datepicker();
                });     </script>



<div class="demo">

<p>Date: <input type="text" id="datepicker"></p>

</div><!-- End demo -->



<div class="demo-description" style="display: none; "> <p>The datepicker is tied to a standard form input field.  Focus on the input (click, or use the tab key) to open an interactive calendar in a small overlay.  Choose a date, click elsewhere on the page (blur the input), or hit the Esc key to close. If a date is chosen, feedback is shown as the input's value.</p> </div><!-- End demo-description -->
        </div>
    </fieldset> </div>

2 个答案:

答案 0 :(得分:1)

我会使用jQuery的ready()函数来运行你的脚本。

因此,请将其从局部视图中拉出来

<script>
 $(function () 
 {
    $("#datepicker").datepicker();
 });     
</script>

并将其添加到您的主视图中。它将在页面加载后运行。

<script type="text/javascript">
   $(document).ready(function () 
   {
     $("#datepicker").datepicker();
   });   
</script>

答案 1 :(得分:0)

jQuery的document.ready只触发一次。 DOM准备好之后。所以你的脚本都不会被执行。您可以查看livequery之类的内容。