将多个 xml 节点存储到列表中并在 MVC 视图中显示
Store multiple xml node into list and show in MVC view
我想将多个 xml linq 结果存储到一个列表中并在 mvc 视图中显示,但它在调试时存储空值。无论如何将它存储在列表中?
谢谢!
我的控制器:
public ActionResult SURV_Answer_Result(int Survey_ID, string Language = "ENG")
{
List<AnswerQuestionViewModel> viewmodel = new List<AnswerQuestionViewModel>();
var query = from r in db.SURV_Question_Ext_Model
join s in db.SURV_Question_Model
on r.Qext_Question_ID equals
s.Question_ID
select new { r, s };
var viewModel = new AnswerQuestionViewModel();
viewModel.Survey_ID = Survey_ID;
List<string> AnsResult = new List<string>();
foreach (var item in query.ToList())
{
string str = item.s.Answer_Data;
XElement qconfig;
qconfig = XElement.Parse(str);
string value = item.s.Question_Type;
int i = 0;
switch (value)
{
case "Single_Line":
{
XElement SingleLineAns =
(from node in qconfig.Elements("Answer")
select node).SingleOrDefault();
Unable to store=====> viewModel.ResultAnswer = SingleLineAns.Value;
AnsResult.Add(viewModel.ResultAnswer[i]);
i++;
}
break;
case "Multiple_Line":
{
// do nothing
}
break;
viewmodel.Add(new AnswerQuestionViewModel()
{
ResultAnswer = viewModel.ResultAnswer
});
}
return View(viewmodel);
}
}
我的回答问题模型:
public string[] ResultAnswer { get; set; }
我的看法:
@model List<SurveyTool.Models.AnswerQuestionViewModel>
@for(int i = 0; i < Model.Count; i++)
{
@Html.DisplayFor(m => m[i].ResultAnswer[i])
}
XML答案数据样本(提取后会得到'ssd'):
<!--Question Configuration--><AnswerData><Answer>ssd</Answer></AnswerData>
改变
public string[] ResultAnswer { get; set; }
到
public List<string>ResultAnswer { get; set; }
然后是
viewModel.ResultAnswer = SingleLineAns.Value;
改为
viewModel.ResultAnswer = new List<string>();
viewModel.ResultAnswer .Add(SingleLineAns.Value);
我想将多个 xml linq 结果存储到一个列表中并在 mvc 视图中显示,但它在调试时存储空值。无论如何将它存储在列表中? 谢谢!
我的控制器:
public ActionResult SURV_Answer_Result(int Survey_ID, string Language = "ENG")
{
List<AnswerQuestionViewModel> viewmodel = new List<AnswerQuestionViewModel>();
var query = from r in db.SURV_Question_Ext_Model
join s in db.SURV_Question_Model
on r.Qext_Question_ID equals
s.Question_ID
select new { r, s };
var viewModel = new AnswerQuestionViewModel();
viewModel.Survey_ID = Survey_ID;
List<string> AnsResult = new List<string>();
foreach (var item in query.ToList())
{
string str = item.s.Answer_Data;
XElement qconfig;
qconfig = XElement.Parse(str);
string value = item.s.Question_Type;
int i = 0;
switch (value)
{
case "Single_Line":
{
XElement SingleLineAns =
(from node in qconfig.Elements("Answer")
select node).SingleOrDefault();
Unable to store=====> viewModel.ResultAnswer = SingleLineAns.Value;
AnsResult.Add(viewModel.ResultAnswer[i]);
i++;
}
break;
case "Multiple_Line":
{
// do nothing
}
break;
viewmodel.Add(new AnswerQuestionViewModel()
{
ResultAnswer = viewModel.ResultAnswer
});
}
return View(viewmodel);
}
}
我的回答问题模型:
public string[] ResultAnswer { get; set; }
我的看法:
@model List<SurveyTool.Models.AnswerQuestionViewModel>
@for(int i = 0; i < Model.Count; i++)
{
@Html.DisplayFor(m => m[i].ResultAnswer[i])
}
XML答案数据样本(提取后会得到'ssd'):
<!--Question Configuration--><AnswerData><Answer>ssd</Answer></AnswerData>
改变
public string[] ResultAnswer { get; set; }
到
public List<string>ResultAnswer { get; set; }
然后是
viewModel.ResultAnswer = SingleLineAns.Value;
改为
viewModel.ResultAnswer = new List<string>();
viewModel.ResultAnswer .Add(SingleLineAns.Value);