C# 如何将数据从视图获取到控制器mvc4?
我有这样的模型C# 如何将数据从视图获取到控制器mvc4?,c#,asp.net-mvc-4,C#,Asp.net Mvc 4,我有这样的模型 public class TutorialModel { public string TitleWord { get; set; } public List<string> PossibleAnswers { get; set; } public List<bool> Colors { get; set; } } 公共类教程模型 { 公共字符串标题词{get;set;} 公共列表可
public class TutorialModel
{
public string TitleWord { get; set; }
public List<string> PossibleAnswers { get; set; }
public List<bool> Colors { get; set; }
}
公共类教程模型
{
公共字符串标题词{get;set;}
公共列表可能的应答{get;set;}
公共列表颜色{get;set;}
}
和控制器
public class TutorialController : Controller
{
//
// GET: /Tutorial/
private TutorialModel model = new TutorialModel();
public ActionResult Index(TutorialModel paramModel)
{
model.TitleWord = "Go";
model.Colors = new List<bool>();
model.PossibleAnswers = new List<string>();
model.PossibleAnswers.Add("1");
model.PossibleAnswers.Add("2");
model.PossibleAnswers.Add("3");
model.PossibleAnswers.Add("4");
return View(this.model);
}
public ActionResult PressButton(int? id)
{
if (model.TitleWord == model.PossibleAnswers[(int) id])
{
model.Colors[(int) id] = true;
}
return RedirectToAction("Index", model);
}
}
公共类教程控制器:控制器
{
//
//获取:/Tutorial/
private TutorialModel model=new TutorialModel();
公共操作结果索引(教程模型paramModel)
{
model.TitleWord=“Go”;
model.Colors=新列表();
model.PossibleAnswers=新列表();
模型。可能答案。添加(“1”);
模型。可能答案。添加(“2”);
模型。可能答案。添加(“3”);
模型。可能答案。添加(“4”);
返回视图(this.model);
}
公共行动结果按钮(int?id)
{
if(model.TitleWord==model.PossibleAnswers[(int)id])
{
model.Colors[(int)id]=true;
}
返回重定向操作(“索引”,模型);
}
}
鉴于
@{
ViewBag.Title = "Tutorial";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<button type="button" class="btn btn-default">@Model.TitleWord</button>
<br/>
@{
var textColor = "green";
}
<div class="btn-group">
@for (int i = 0; i < Model.PossibleAnswers.Count; i++)
{
<button type="button" class="btn btn-default" style="color: @textColor" onclick = " window.location.href = '@Url.Action("PressButton", "Tutorial", new {id = i})' ">@Model.PossibleAnswers[i]</button>
}
</div>
@{
ViewBag.Title=“教程”;
Layout=“~/Views/Shared/_Layout.cshtml”;
}
@TitleWord模型
@{
var textColor=“绿色”;
}
@对于(int i=0;i
在我按下其中一个按钮之后,我需要得到我在视图中使用的模型和我按下的按钮。关于按钮的信息,我得到了,但我不知道如何获得信息发送模型从视图到控制器。请帮我解决这个问题。您必须添加表单元素,并且要发送回服务器的所有值都应该放在输入元素中,如果不想在文本字段中显示,可以使用隐藏字段。视图中:
@using (Html.BeginForm())
{
@{
ViewBag.Title = "Tutorial";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<button type="button" class="btn btn-default">@Model.TitleWord</button>
<br/>
@{
var textColor = "green";
}
<div class="btn-group">
@for (int i = 0; i < Model.PossibleAnswers.Count; i++)
{
<button type="button" name="btn" class="btn btn-default" style="color: @textColor" onclick = " window.location.href = '@Url.Action("PressButton", "Tutorial", new {id = i})' ">@Model.PossibleAnswers[i]</button>
}
</div>
}
使用ajax调用。请参阅我的答案,以获取示例,并在提交表单之前设置隐藏字段值。
public ActionResult PressButton(FormCollection collection)
{
string s=collection["btn"]; //string parameter passed is the name of the field defined in the view to a control.(btn is the name for the Button)
}