2010-07-03 2 views
2

После отправки формы в базу данных можно назвать JQuery из ASP.NET MVC .....вызов функции JQuery из ASP.NET MVC действий

[AcceptVerbs(HttpVerbs.Post)] 
     public ActionResult Create(FormCollection collection) 
     { 
      try 
      { 
       //Insert to db 
       //Call a jquery function 
       return RedirectToAction("Index"); 
      } 
      catch 
      { 
       return View(); 
      } 
     } 

я должен использовать ScriptManager.RegisterClientScriptBlock после вставки или любой другой способ сделать это ... Любое предложение ...

ответ

1

Нет. Вы не можете вызвать функцию jQuery из действия. Способ сделать это в MVC состоит в том, чтобы просто добавить функцию на странице View .aspx и просто обернуть ее в $(document).ready(function(){}) (или без функции, доступной для вашей библиотеки), чтобы при полной загрузке страницы функция была вызвана ,

Важно отметить, что с MVC вы полностью контролируете вывод HTML (включая JavaScript), и вы должны использовать это. В то время как в WebForms лучше избегать использования встроенных тегов <% %>, в MVC вы должны использовать их для генерации нужного HTML-кода.

Таким образом, если предположить, что Insert to db будет возвращать что-то, как ID, вы можете поместить этот ID значение в ViewData или TempData, так как вы используете RedirectToAction, а затем использовать его для вызова функции.

[AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult Create(FormCollection collection) 
    { 
     int newID = InsertToDBAndReturnID(); 
     ViewData["MyID"] = newID; 
     return View(); 
    } 

И где-то в .aspx странице, которая используется для Create действия:

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

      // I have direct access to the "MyID" value from the action 
      // so I can utilize it to write any JavaScript with it 
      $('#'+<%: ViewData["MyID"] %>).click(function(){ 
       alert('You clicked the control with the new ID'); 
      }); 

     }); 
    </script> 

Когда страница отображается, <%: ViewData["MyID"] %> заменяется фактическим значением, генерируемым в действии.

Смежные вопросы