Asp.net mvc 使用控制器方法提交表单

Asp.net mvc 使用控制器方法提交表单,asp.net-mvc,asp.net-mvc-controller,Asp.net Mvc,Asp.net Mvc Controller,我正试图从视图调用一个方法,但它不起作用!:( 我的控制器代码: public class ProfessionalController : Controller { // // GET: /Professional/ public ActionResult Index() { return View(); } public ActionResult Sum(int nro1, int nro2) { v

我正试图从视图调用一个方法,但它不起作用!:(

我的控制器代码:

public class ProfessionalController : Controller
{
    //
    // GET: /Professional/
    public ActionResult Index()
    {
        return View();
    }


    public ActionResult Sum(int nro1, int nro2)
    {
        var value = nro1 + nro2;

        ViewBag.SumResult = value;

        return View();
    }
}
我的观点代码:

专业索引:

@{
    ViewBag.Title = "Profissional";
}

<h2>Profissional</h2>


@using (Html.BeginForm("Professional", "Sum")) {

    <input id="nro1" type="number" class="form-control marged_top" placeholder="Numero 1" />
    <input id="nro2" type="number" class="form-control marged_top" placeholder="Numero 2" />


    <button id="Sum" name="Sum" value="Sum" class="btn btn-default" type="button"
            data-toggle="button">

        Sum
    </button>

}
@{
    ViewBag.Title = "Sum";
}

<h2>Sum</h2>


@ViewBag.SumResult;
@{
ViewBag.Title=“专业人士”;
}
专业人士
@使用(Html.BeginForm(“Professional”、“Sum”)){
总和
}
总和视图:

@{
    ViewBag.Title = "Profissional";
}

<h2>Profissional</h2>


@using (Html.BeginForm("Professional", "Sum")) {

    <input id="nro1" type="number" class="form-control marged_top" placeholder="Numero 1" />
    <input id="nro2" type="number" class="form-control marged_top" placeholder="Numero 2" />


    <button id="Sum" name="Sum" value="Sum" class="btn btn-default" type="button"
            data-toggle="button">

        Sum
    </button>

}
@{
    ViewBag.Title = "Sum";
}

<h2>Sum</h2>


@ViewBag.SumResult;
@{
ViewBag.Title=“Sum”;
}
总和
@ViewBag.SumResult;
没有发生任何错误,只是当我单击“求和”按钮时什么也没有发生。

一些问题:

  • 您可能希望您的
    带有
    type=“submit”
    ,否则表单将不会提交,按钮将不起任何作用。另请参见:
  • Html.BeginForm(“Professional”、“Sum”)
    应该是
    Html.BeginForm(“Sum”、“Professional”)
    -控制器是第二个参数。
    Html.BeginForm(“Sum”)
    也可以在这里工作,因为这是当前的控制器
  • 输入应具有
    name=“nro1”
    ,而不是
    id
    ——提交的是名称
  • @ViewBag.SumResult
    之后不需要分号(尽管这不是一个bug)
  • 我不知道这里在干什么
请注意,您不是在“从视图调用控制器”-您正在提交一个表单,它将启动一个新的控制器视图周期。您可以执行类似的操作,但这不是您在这里尝试执行的操作


我还想借此机会建议不要使用
ViewBag
——相反

我已将类型更改为
submit
,但它仍然不起作用:(