Asp.net mvc 如何在asp.net mvc 5中将用户输入值存储在局部变量(视图)中?
我想在razor html表单(视图)中声明一个局部变量,并想在该局部变量中存储用户输入值。然后想在foreach循环中使用该变量。在mvc 5中,我是asp.net新手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
@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循环”,而不是foreachcode
{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做过类似的事情;我不知道这篇博文是否会有帮助,但它可能有助于理解集成,也许?你能告诉我如何满足这种工作吗?