C# 从视图调用控制器操作
我正在尝试使用C# 从视图调用控制器操作,c#,html,asp.net-mvc,razor,C#,Html,Asp.net Mvc,Razor,我正在尝试使用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" o
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为我验证输入。如果我将输入标记更改为button,它将不会执行所需的验证。当在表单元素中时,
将在单击时提交表单,除非返回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>
}
@使用(Html.BeginForm())
{
}
Javascript
<script>
$(document).ready(function () {
$("#btnSubmit").click(function () { window.location.href = '@Url.Action("RegisterIndex", "Register")'; return false; });
});
</script>
$(文档).ready(函数(){
$(“#btnSubmit”)。单击(函数(){window.location.href='@Url.Action(“RegisterIndex”,“Register”);返回false;});
});
当
位于表单元素内时,单击时将提交表单,除非返回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>
}
@使用(Html.BeginForm())
{
}
Javascript
<script>
$(document).ready(function () {
$("#btnSubmit").click(function () { window.location.href = '@Url.Action("RegisterIndex", "Register")'; return false; });
});
</script>
$(文档).ready(函数(){
$(“#btnSubmit”)。单击(函数(){window.location.href='@Url.Action(“RegisterIndex”,“Register”);返回false;});
});
window.location.href
执行获取
请求,这就是为什么它没有将您的输入值传递给服务器
当表单中有
时,单击该表单将提交包含所需所有数据的表单。我认为这是您想要的,但您只希望它提交给另一个操作
为此,我建议采用以下解决方案:
在表单中创建一个隐藏的字段。它的数据将被发送到服务器
在您的服务器中,基于该隐藏
值,您可以重定向
到相应的操作
如果您发现任何不清楚的地方,请随时询问我:)window.location.href
是否执行获取
请求,这就是它没有将您的输入值传递给服务器的原因
当表单中有
时,单击该表单将提交包含所需所有数据的表单。我认为这是您想要的,但您只希望它提交给另一个操作
为此,我建议采用以下解决方案:
在表单中创建一个隐藏的字段。它的数据将被发送到服务器
在您的服务器中,基于该隐藏
值,您可以重定向
到相应的操作
如果您发现任何不清楚的地方,请随时问我:)您是否在表单中有此项?@Moe是的,它在表单中。您是否在表单中有此项?@Moe是的,它在表单中。现在它正在调用我想要的ActionResult,但它并不是在验证输入,也不是只传递空输入值。当使用提交时,您需要返回false。答案已经更新了你能告诉我什么是“家”吗?那只是一个测试。AnhTriet说,这是一个get,所以你的数据不会被发布。遵循他的建议。现在它正在调用我想要的ActionResult,但它并没有验证输入,也没有将输入值传递为null。当使用submit时,您需要返回false。答案已经更新了你能告诉我什么是“家”吗?那只是一个测试。AnhTriet说,这是一个get,所以你的数据不会被发布。听从他的伟大建议。