将表单发布到数据库后,可以从asp.net mvc中调用jquery .....
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(FormCollection collection)
{
try
{
//Insert to db
//Call a jquery function
return RedirectToAction("Index");
}
catch
{
return View();
}
}
我应该在插入后使用ScriptManager.RegisterClientScriptBlock
或以任何其他方式执行此操作...任何建议......
答案 0 :(得分: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"] %>
将替换为操作中生成的实际值。