我正在尝试使用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>
注意
我已经使用模型自动创建了视图。它通过使用已生成的javascripts为我验证输入。如果我将输入标签更改为按钮,则不会进行必要的验证。
答案 0 :(得分:3)
window.location.href
执行了GET
请求,这就是为什么它没有将您的输入值传递给服务器。
如果表单中包含<input type="submit">
,则单击该表单将提交包含所需数据的表单。我认为这是你想要的,但你只是想让它提交给另一个action
。
为实现这一目标,我建议使用此解决方案:
hidden
字段。它的数据将被发送到服务器。hidden
值,您redirect
可以action
如果您发现任何不清楚的地方,请随时问我:)
答案 1 :(得分:1)
<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>