我有一个与此how to call javascript function from Controllers file in MVC?非常相似的问题,但提供的答案并不完全符合我的要求。
我想要做的是,我想返回一个视图,但我想触发/调用javascript / jquery事件。例如在我的控制器中:
public ActionResult List()
{
// do some processing
// Call the javascript/jquery event
return this.View();
}
现在我尝试这种方式的方法是使用视图包:
public ActionResult List()
{
ViewBag.MovePanel = "yes";
return this.View();
}
然后在我看来,我有类似的东西:
<input type="hidden" name="move" id="move" value="<%: (string)ViewBag.MovePanel %>" />
<script type="text/javascript">
$('#move').change(function () {
console.log('changed');
});
该值设置为“yes”,但“change”事件永远不会被触发。
我如何实现我的目标?
编辑: 在达林的评论之后,这就是我想要实现的目标。 我们正在尝试创建一个类似于图像轮播的表单轮播。所以,我想要做的是控制是否显示下一个表单。
例如,典型的工作流程是这样的:
如此有效地解决了我在最后一步遇到的问题,即获取列表表单。
在更广泛的上下文中说当我提交表单并且出现错误时,我应该能够将“编辑”表单保留在视图中,而不是关闭它并且不显示先前打开的“列表”表单。
我希望这是一个更明确的解释。
答案 0 :(得分:0)
你要注意的一件事是, 你不能从服务器端调用javascript(客户端代码)方法。 (除了推动)。
并且,在您的代码中,$(“#move”)的值永远不会改变。它的价值是“是”。 如果你改变$(“#move”)的值而不是“yes”,它将触发。
答案 1 :(得分:0)
确定,
达林是对的,设计已经关闭。所以我最终要做的是“ajaxify”我的所有表单,而不是依赖于HTML表单提交。我保持沉默只是因为它意味着更多的工作,但在完成之后,它并没有像我想象的那么长。然而,以下内容对我有很大的帮助How to read modelstate errors when returned by Json?。