我是新来的asp.net MVC。我正在使用一些XML Web服务,并需要创建一个Web应用程序来与它们进行交互。创建模型和控制器以与Web服务交互
Web应用程序将包含一个包含所有工具标识和说明的表格,该表格将在单击表格上的某个工具时使用该工具的信息填充表单。
通常从// localhost/dbservices/tool/id访问Web服务。 每个页面都包含对应于指定工具ID的XML。
我只是混淆了如何开始使用MVC这个项目。 我从来没有使用过不在本地数据库中的模型数据。
我该如何去分配XML数据到我的模型并在控制器中访问它,然后将它传递给视图?
这是我正在尝试的一些代码。我制作了一个与以往类似的网络表单应用程序。在这里,我试图将所有工具的列表传递给控制器。我已经采取了一些代码,并试图将其实施到我的MVC应用程序。我想知道我是否在这条正确的道路上。还包括我的模型视图和工具控制器。
public ActionResult Component()
{
string rt;
WebRequest request =
WebRequest.Create("http://localhost/DbService/Tool");
WebResponse response = request.GetResponse();
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
rt = reader.ReadToEnd();
XmlDocument xmldoc = new XmlDocument();
xmldoc.LoadXml(rt);
XmlNodeList nodeList = xmldoc.GetElementsByTagName("Tool");
List<Tool> ToolIdList = new List<Tool>();
Tool[] toolArray = new Tool[3];
List<string> toolList = new List<string>();
foreach (XmlNode node in nodeList)
{
toolList.Add(node.InnerText);
}
foreach (Tool tool in ToolIdList)
{
foreach (var toolId in toolList)
{
tool.ToolId = toolId;
}
}
return View(ToolIdList);
}
工具型号:
public class Tool
{
public int Id { get; set; }
public string ToolId { get; set; }
public string Adapter { get; set; }
public int TNumber { get; set; }
public List<string> ComponentList { get; set; }
public List<string> AccessoryList { get; set; }
}
查看:
@model IEnumerable<Project.Models.Tool>
@foreach (var item in Model)
{
@Html.DisplayFor(modelItem => item.ToolId)
}
因此,您可以从数据库获取值,然后您可以从Web服务获取这些值。 – stuartd
我在我的问题中添加了一些代码。这似乎是正确的道路吗? – totallytypicalcow
看起来不错。但是你应该处理流和streamreader,最好的方法是用'using'语句包装它们。 – stuartd