我是新來的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