-3

我需要在 MVC 中乘以 2 个数字

这是代码

控制器

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcApplication17.Controllers
{

public class leetController : Controller
{
    //
    // GET: /leet/

    public ActionResult Index()
    {

        decimal result = Decimal.Parse(Request["FirstNum"]) * Decimal.Parse(Request["Secondnum"]);
        ViewBag.Result = result;
        return View();
    }

}
}

看法

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<dynamic>" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
 </head>
<body>
<div>

        <form>

        First number: <input type="value" id="FirstNum" value=""><br>
        Second number: <input type="value" id="Secondnum" value=""><br>
        <input type="submit" value="Arvuta">
        <asp:Label ID="Label1" runat="server" Text="Vastus"></asp:Label>
            @ViewBag.Result
        </form> 
</div>
</body>
</html>

我得到一个错误值不能为空。参数名称:我尝试运行代码时的字符串

当我运行代码和行十进制结果 = Decimal.Parse(Request["FirstNum"]) * Decimal.Parse(Request["Secondnum"]); 似乎有问题。

4

3 回答 3

2

首先,尝试使用方法参数,而不是从 Request 中获取:

public ActionResult Index(decimal? FirstNum, decimal? SecondNum)

其次,检查值是否不为空

if(FirstNum.HasValue && SecondNum.HasValue) {}

三、尝试将小数改为双精度

PS 为了让它工作,你应该使用像http://yourdomain.com/leet/Index?FirstNum=1&SecondNum=2这样的 url或 form post 方法,然后你应该使用 [HttpPost] 属性创建操作

于 2013-11-06T11:51:40.640 回答
0

您是在构建代码后立即执行代码吗?如果是这样,您的初始值将用于执行乘法,即“”。

确保通过按下按钮或在值字段中输入默认值来开始计算。

   First number: <input type="value" id="FirstNum" value="0"><br>
   Second number: <input type="value" id="Secondnum" value="0"><br>

否则,您实际上是在试图乘以什么:)

于 2013-11-06T11:50:29.690 回答
0
decimal firstNum;
decimal secondNum;
decimal result = 0;

if (Decimal.TryParse(Request["FirstNum"], out firstNum) &&
    Decimal.TryParse(Request["SecondNum"], out secondNum))
{
    result = firstNum * secondNum;
}

ViewBag.Result = result;
return View();
于 2013-11-06T11:52:15.007 回答