Нет. Вы не можете вызвать функцию 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"] %>
заменяется фактическим значением, генерируемым в действии.