【问题标题】:Addition of two numbers in MVCMVC中两个数字相加
【发布时间】:2014-04-02 11:08:36
【问题描述】:

我正在尝试在 MVC 中添加两个数字。

我的要求是“我在视图中有 2 个文本框,我必须从中检索数据到控制器”

查看:

@using (Html.BeginForm("Addition", "Addition", FormMethod.Post))
{
    <input id="Text1" type="text" value=@ViewBag.a name="firstNum" />
    <input id="Text2" type="text" value=@ViewBag.b name="secondNum" />
    <input id="Text3" type="text" value=@ViewBag.result />

    <input type="submit" value="Submit" />
}

控制器名称:加法 动作名称:加法

[HttpPost]
        public ActionResult Addition(FormCollection fc)
        {
            string[] keyss = fc.AllKeys;
            ViewBag.a = fc.Keys[0];
            ViewBag.b = fc.Keys[1];
            ViewBag.total = ViewBag.a + ViewBag.b;
            return View();
        }

现在,我想从这个表单集合中检索文本框的值。

谢谢。

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-mvc-4 razor-2


    【解决方案1】:

    MVC 的强大功能之一是模型绑定器 - 您在这里完全忽略了它。创建视图模型以匹配视图的预期内容

    public class AdditionViewModel
    {
        public int A { get; set; }
        public int B { get; set; }
        public int Result { get; set; }
    }
    

    在你的操作中使用这个作为预期的参数

    [HttpPost]
    public ActionResult Addition(AdditionViewModel model)
    {
        model.Result = model.A + model.B;
        return View(model);
    }
    

    然后终于在你的视野中

    @model AdditionViewModel
    
    @using (Html.BeginForm("Addition", "Addition", FormMethod.Post))
    {
        @Html.EditorFor(x => x.A)
        @Html.EditorFor(x => x.B)
        @Html.DisplayFor(x => x.Result)
    
        <input type="submit" value="Submit" />
    }
    

    【讨论】:

    • 使用 Model Binder 是一种很好的编程方式,我已经知道使用它 James。我只是想换个思路;)谢谢你的回答
    【解决方案2】:

    假设您将数据输入到您的控制器中,然后您只需添加 Addition 视图并使用 @ViewBag.total simple 或者如果你需要,你也可以使用 viewdata 或 tempdata。

    【讨论】:

      【解决方案3】:

      更好的方法是

        [HttpPost]
        public ActionResult Addition(int firstNum, int secondNum )
        {
         ViewBag.Result=firstNum+secondNum;
         return View();
      
        }
      

      确保您在客户端进行数字验证

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-07-29
        • 1970-01-01
        • 1970-01-01
        • 2010-10-01
        • 1970-01-01
        • 2021-05-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多