通视图模型对象,以查看在asp.net MVC
问题描述:
我在控制器的以下方法通视图模型对象,以查看在asp.net MVC
public ActionResult Categorized()
{
var x=new Test.Models.MobileClass();
return View(x);
}
x对象包含返回XmlDocument的数据
如何可以通过这个对象可以查看的方法在浏览器访问方法和从XmlDocument的显示数据
我可以通过使用下面的代码
document.writeln("@Model.getxml().ChildNodes.Count");
显示它元件元件
,但我想用for循环显示对象的内容,下面的代码没有工作在JavaScript
var size=parseInt("@Model.Getxml().ChildNodes.Count");
for (var i=0; i<size; i++)
{
document.writeln("@Model.Getxml().ChildNodes[i].InnerText");
}
你能帮助我请
答
首先,你的观点不应该调用Getxml并使用XML DOM进行分析。控制器的工作是呈现“准备呈现”数据的视图。这就是ViewModel的用途。
public ActionResult Categorized()
{
var foo = new Test.Models.MobileClass();
var xml = foo.Getxml();
var viewData = xml.ChildNodes.Cast<XmlNode>().Select(x => x.InnerText);
return View(viewData);
}
现在我们将IEnumerable<string>
传递给视图,其中只包含我们想要呈现的值。
在视图中,您不应该使用JavaScript将数据呈现为HTML - 使用视图将数据呈现为HTML - Razor模板引擎真的很擅长!像...
<ul>
@foreach (var item in Model) {
<li>@item</li>
}
</ul>
+0
非常感谢我解决了我的问题 – 2013-05-04 04:32:05
答
JavaScript将失败,因为变量我将在服务器端评估,然后不存在。 使用foreach在视图中,用剃刀:
@foreach(var child in Model.Getxml().ChildNodes)
{
child.InnerText
}
如果您的视图代码必须知道关于XML文档的结构具体细节,你需要一个更好的视图模型。 – 2013-05-03 20:22:34
javascript是客户端,在浏览器中,视图和模型是服务器端,您在服务器端生成html,浏览器接收到该html – Omu 2013-05-03 20:23:08
您已经问过这个问题一次,完全相同的答案仍然适用:http:/ /*.com/q/16351921/1043198 – 2013-05-03 22:19:04