2017-01-18 7 views
0

Я работаю с MVC5. У меня есть вид, который вызывает частичный просмотр.частичный вид ajax.beginform onsuccess функция ошибка не определена

На частичном изображении у меня есть Ajax.BeginForm, что OnSuccess вызывается функцией.

У меня есть ошибка во время выполнения, говоря, что функция не найдена.

Если funtion определен в Родительском представлении, он обнаруживается и запускается.

Это мой Частичного вид

@model TableAvivaVoz.Models.UserPasswordView 
 
<script src="/Scripts/jquery.validate.js"></script> 
 
<script src="/Scripts/jquery.validate.unobtrusive.js"></script> 
 
<script src="/Scripts/jquery.unobtrusive-ajax.js"></script> 
 
@{ 
 
    ViewBag.Title = "Actualizar"; 
 
    AjaxOptions ajaxOpts = new AjaxOptions 
 
    { 
 
     InsertionMode = InsertionMode.Replace, 
 
     HttpMethod = "POST", 
 
     OnSuccess = "exito", 
 
//  OnFailure ="failure", 
 
    }; 
 
} 
 
@section Scripts { 
 
    <script type="text/javascript"> 
 
     function exito(result) { 
 
       alert(1); 
 
     } 
 
    </script> 
 
} 
 
@using (Ajax.BeginForm("ChangePassword", "Users", ajaxOpts, new { id = "FormID" })) 
 
{ 
 
    @Html.AntiForgeryToken() 
 
"modal-header"> 
 
       <h4 class="modal-title" id="myModalLabel"> 
 
        Cambio de Contraseña 
 
       </h4> 
 
      </div> 
 
      <div class="alert alert-success hidden"> 
 
       Success! Password Changed. 
 
      </div> 
 
      @Html.HiddenFor(model => model.User_id) 
 
      @Html.ValidationSummary(true, "", new { @class = "text-danger" }) 
 
      <div class="modal-body"> 
 

 
       <div class="col-md-10"> 
 
        @Html.PasswordFor(model => model.OldPassword, new { @class = "form-control", placeholder = "Vieja Contraseña" }) 
 
        @Html.ValidationMessageFor(model => model.OldPassword, "", new { @class = "text-danger" }) 
 
       </div> 
 
      </div> 
 
      <div class="modal-body"> 
 

 
       <div class="col-md-10"> 
 
        @Html.PasswordFor(model => model.Password, new { @class = "form-control", placeholder = "Nueva Contraseña" }) 
 
        @Html.ValidationMessageFor(model => model.Password, "", new { @class = "text-danger" }) 
 
       </div> 
 
      </div> 
 
      <div class="modal-body"> 
 

 
       <div class="col-md-10"> 
 
        @Html.PasswordFor(model => model.ConfirmPassword, new { @class = "form-control", placeholder = "Repetir Nueva Contraseña" }) 
 
        @Html.ValidationMessageFor(model => model.ConfirmPassword, "", new { @class = "text-danger" }) 
 
       </div> 
 
      </div> 
 
      <div class="modal-footer visible"> 
 
       <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
 
       <button type="submit" class="btn btn-primary" id="btnSave">Save</button> 
 
      </div> 
 
      <div class="modal-footer hidden"> 
 
       <button type="button" class="btn btn-default" data-dismiss="modal">Salir</button> 
 
      </div> 
 
     </div><!-- /.modal-content --> 
 
    </div><!-- /.modal --> 
 
}

Что мне не хватает, чтобы вызвать функцию из частичного вида.?

Благодаря

ответ

1

Разделы не работают в обертонов. Не используйте разделы в частичном режиме. Убедитесь, что вы поместите следующий раздел внутри главного вида, а не в парциальном:

@section Scripts { 
    <script type="text/javascript"> 
     function exito(result) { 
       alert(1); 
     } 
    </script> 
} 

Это будет гарантировать, что соответствующий <script> тег, который определяет ваши exito функцию визуализируется. Вы можете проверить это, проверив сгенерированную разметку в своем браузере.

+0

ОК, что это произошло, хотя у меня есть ошибка. Поэтому я не могу определить мой метод OnSucess в своем ParentView? – Diego