从视图调用控制器操作
本文关键字:操作 控制器 调用 视图 | 更新日期: 2023-09-27 18:22:36
我正试图使用onclick
方法从控制器调用一个操作。出于某种原因,它没有返回我想要的操作,默认情况下总是跳到public ActionResult Index()
。
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Register" class="btn btn-default" onclick="location.href='@Url.Action("RegisterIndex", "Register")'"/>
</div>
</div>
注意
我已经使用模型自动创建了视图。它通过使用已经生成的javascript为我验证输入。如果我将输入标签更改为按钮,它将不会进行所需的验证。
window.location.href
执行GET
请求,这就是为什么它没有将您的输入值传递给服务器。
当您在表单中有<input type="submit">
时,单击它将提交包含所需所有数据的表单。我想这是你想要的,但你只想把它提交给另一个action
。
为了实现这一点,我建议采用以下解决方案:
- 在表单中创建一个
hidden
字段。其数据将发送到服务器 - 在服务器中,基于该
hidden
值,可以将redirect
设置为适当的action
如果您发现任何不清楚的地方,请随时询问我:)
<input type="submit">
在表单元素内时,将在单击时提交表单,除非返回false或event.preventDefault();
返回false将阻止提交的默认行为。
编辑
window.location.href
将导致GET请求,因此不会使用此方法发布您的数据。
HTML
@using (Html.BeginForm())
{
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" id="btnSubmit" value="Register" class="btn btn-default"/>
</div>
</div>
}
Javascript
<script>
$(document).ready(function () {
$("#btnSubmit").click(function () { window.location.href = '@Url.Action("RegisterIndex", "Register")'; return false; });
});
</script>