Asp.net mvc 如何在asp.net mvc 5中将用户输入值存储在局部变量(视图)中?

Asp.net mvc 如何在asp.net mvc 5中将用户输入值存储在局部变量(视图)中?,asp.net-mvc,Asp.net Mvc,我想在razor html表单(视图)中声明一个局部变量,并想在该局部变量中存储用户输入值。然后想在foreach循环中使用该变量。在mvc 5中,我是asp.net新手 @using (Html.BeginForm("AddQuestion", "admin", new { id = ViewBag.qf_id }, FormMethod.Post)) { @Html.AntiForgeryToken() <div class="form-group"> <labe

我想在razor html表单(视图)中声明一个局部变量,并想在该局部变量中存储用户输入值。然后想在foreach循环中使用该变量。在mvc 5中,我是asp.net新手

@using (Html.BeginForm("AddQuestion", "admin", new { id = ViewBag.qf_id }, FormMethod.Post))
{
@Html.AntiForgeryToken()

<div class="form-group">
    <label>Question Statement</label>
    @Html.TextBoxFor(a => a.Ques.QuestionString, new { @class = "form-control" })
    @Html.ValidationMessageFor(a => a.Ques.QuestionString)
</div>

<div class="form-group">
    <label>No. of option you want to add for this question </label>
    <div class="col-md-4">
     @{var val = @Html.TextBoxFor(a => a.counter, new { @class = "form-control" }); }


    </div>
</div>
         foreach(var item in val)
         {

             @Html.TextBoxFor(a=>a.Ans.AnswerStatement)

         }

 <div>
    <button class="btn btn-primary" type="submit">Add</button>
 </div>
  }
@使用(Html.BeginForm(“AddQuestion”,“admin”,new{id=ViewBag.qf_id},FormMethod.Post))
{
@Html.AntiForgeryToken()
问题陈述
@TextBoxFor(a=>a.Ques.QuestionString,新的{@class=“form control”})
@Html.ValidationMessageFor(a=>a.Ques.QuestionString)
要为此问题添加的选项数
@{var val=@Html.TextBoxFor(a=>a.counter,新的{@class=“form control”});}
foreach(val中的var项目)
{
@Html.TextBoxFor(a=>a.Ans.AnswerStatement)
}
添加
}

除非您尝试的方法适应以下两种解决方案中的一种,否则将无法奏效:

1) 唯一可行的方法是,用户在文本框中输入一个值,然后发回控制器,控制器将该变量输入到模型中,然后视图使用模型中的数字以所需的条目数重新渲染该模型。这是web表单的方式,效率很低


2) 使用JavaScript,当用户输入一个数字时,JavaScript可以使用模板框架呈现标记,或者向服务器发出请求,获取单个数据,并以HTML形式返回部分视图。

我认为这不是一个好方法。若用户并没有输入任何内容怎么办?您必须使用DisplayTemplates/EditorTemplates才能在视图中添加多个文本框,最好使用
EditorTemplates
和客户端事件传递的控制值。如何将其集成到我的代码中?如果您希望在客户端执行此操作,则需要使用javascript(没有明确的疑问)。在服务器端,假设val是int,您可能希望使用“for循环”,而不是foreach
code
{var val=@Html.TextBoxFor(a=>a.counter,新的{@class=“form control”});}
code
应该分成两行
code
@Html.TextBoxFor(a=>a.counter,新的{@class=“form control”})<代码>代码和
代码
@{var val=a.counter}
代码
。您似乎正在以其他方式将val设置为html,您能告诉我代码示例以满足这项工作吗?//这并不直接相关,但我曾经使用kendo和listview做过类似的事情;我不知道这篇博文是否会有帮助,但它可能有助于理解集成,也许?你能告诉我如何满足这种工作吗?