Asp.net mvc ASP.NET MVC-将变量分配给输入隐藏字段

Asp.net mvc ASP.NET MVC-将变量分配给输入隐藏字段,asp.net-mvc,variables,input,hidden,assign,Asp.net Mvc,Variables,Input,Hidden,Assign,我想尝试为MVC表单中的输入隐藏字段分配一个变量值。我想我可以这样做,但是变量的值没有被放到隐藏字段中。 有没有想过为什么这是一种错误的方式 注意:变量声明之间有一些代码。。。我只是想让事情变得简单易懂。让我讨厌的特定代码行是:@value=@secondNumber @{ ViewBag.Title = "Jakub Holovsky - Contact"; Random randomNumber = new Random(); int firstNumber = r

我想尝试为MVC表单中的输入隐藏字段分配一个变量值。我想我可以这样做,但是变量的值没有被放到隐藏字段中。 有没有想过为什么这是一种错误的方式

注意:变量声明之间有一些代码。。。我只是想让事情变得简单易懂。让我讨厌的特定代码行是:@value=@secondNumber

@{
    ViewBag.Title = "Jakub Holovsky - Contact";

    Random randomNumber = new Random();
    int firstNumber = randomNumber.Next(0, 11);
    int secondNumber = randomNumber.Next(0, 11);
    int sumNumber = firstNumber + secondNumber;
}

<div class="divLeftSide">
                        <span>How much is @firstNumber + @secondNumber:</span>
                        @Html.TextBoxFor(m => m.FirstNumber, new { @type = "number", @id = "firstNumber", @class = "HiddenField", @value = @firstNumber })
                        @Html.TextBoxFor(m => m.SecondNumber, new { @type = "number", @id = "secondNumber", @class = "HiddenField", @value = @secondNumber })
                    </div>
@{
ViewBag.Title=“Jakub Holovsky-联系人”;
随机数=新随机数();
int firstNumber=randomNumber.Next(0,11);
int secondNumber=randomNumber.Next(0,11);
int sumname=firstNumber+secondNumber;
}
@firstNumber+@secondNumber是多少钱:
@Html.TextBoxFor(m=>m.FirstNumber,new{@type=“number”、@id=“FirstNumber”、@class=“HiddenField”、@value=@FirstNumber})
@Html.TextBoxFor(m=>m.SecondNumber,new{@type=“number”、@id=“SecondNumber”、@class=“HiddenField”、@value=@SecondNumber})
1)为您的模型创建一个名为SomeModel的类。该类应包含名为FirstNumber和SecondNumber的属性

2) 添加行

@model SomeModel
同意你的观点

3) 移动

进入控制器的操作

4) 在控制器的操作中,初始化名为model的SomeModel的新实例,并将FirstNumber设置为FirstNumber,将SecondNumber设置为SecondNumber

@{
    ViewBag.Title = "Jakub Holovsky - Contact";

    Random randomNumber = new Random();
    int firstNumber = randomNumber.Next(0, 11);
    int secondNumber = randomNumber.Next(0, 11);
    int sumNumber = firstNumber + secondNumber;
}

<div class="divLeftSide">
                        <span>How much is @firstNumber + @secondNumber:</span>
                        @Html.TextBoxFor(m => m.FirstNumber, new { @type = "number", @id = "firstNumber", @class = "HiddenField", @value = @firstNumber })
                        @Html.TextBoxFor(m => m.SecondNumber, new { @type = "number", @id = "secondNumber", @class = "HiddenField", @value = @secondNumber })
                    </div>
5) 通过调用返回视图(model)将模型传递给视图


6) 将@value=@firstNumber和@value=@secondNumber从您的视图中删除。

您好,非常感谢您的回答,这有助于我更好地理解整个问题。但这个想法是在你们给我看的控制器上生成随机数,然后传递给视图。用户将填写这两个数字之和的结果,并将它们传递回我的控制器。我怎么把这些号码保存在某个地方我是说两个?我如何通过这一点来坚持他们的价值观?谢谢您您可以执行您现在正在执行的操作,即使用@@Html.TextBoxFor,或者您可以使用@@Html.HiddenFor,默认情况下它是隐藏的。然后在控制器中,添加方法[HttpPost]public ActionResult SomeAction(SomeModel模型),参数模型将从视图中的@@Html.hidden获取FirstNumber和SecondNumber。您可能还想向SomeModel添加一个属性TheirSum,以便显示textbox@@Html.TextBoxFor(m=>m.TheirSum)并在控制器中检索其值。谢谢!这对我有帮助。还有一件事,在MVC中最推荐的保持状态的方法是什么。是会话吗?为了让我的应用程序通过IBMRationalAppScan会话扫描,我禁用了SessionState。因此,如果无法重新创建,我将使用Html.HiddenFor保留状态,否则将从DB中重新创建状态。为了方便起见,我将用户ID、用户名和用户名存储在身份验证cookie中。