Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从视图调用控制器操作_C#_Html_Asp.net Mvc_Razor - Fatal编程技术网

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,所以你的数据不会被发布。听从他的伟大建议。