[英]How to pass multiple model in view in ASP.NET MVC?
問題是:我想運行3個不同的操作,而不是我希望在更大的模型中從單個操作提供所有數據。
我在用:
public class SearchScrapClass
{
public WClass WClass { get; set; }
public SClass SClass { get; set; }
public YClass YClass { get; set; }
}
public class WClass
{
public string title { get; set; }
public string link { get; set; }
}
public class SClass
{
public string title { get; set; }
public string link { get; set; }
}
public class YClass
{
public string title { get; set; }
public string link { get; set; }
}
我正在使用LINQ在這些模型中添加數據。
我在用 :
var wikians = from info in document.DocumentNode.SelectNodes("//div[@id='span']")
from link in info.SelectNodes("div//a").Where(x => x.Attributes.Contains("href"))
select new SearchScrapClass //Main Bigger Class
{
WClass.link= link.Attributes["href"].Value, //ERROR: How to add to WClass's url ?
WClass.title= link.InnerText //ERROR: How to add to WClass's url ?
}
var wikians = from info in document.DocumentNode.SelectNodes("//div[@id='results']")
from link in info.SelectNodes("p//a").Where(x => x.Attributes.Contains("href"))
select new SearchScrapClass //Main Bigger Class
{
YClass.link= link.Attributes["href"].Value, //ERROR: How to add to YClass's url ?
YClass.title= link.InnerText //ERROR: How to add to YClass's url ?
}
//Also for the 3rd class (model)
return View(wikians); //and then return bigger class model so that i can access them in view
這是我想要將數據添加到所有類的鏈接和標題的一種方式。
我的嘗試是將數據添加到來自不同來源的所有3個類,並將更大的模型傳遞給視圖,以便我可以訪問所有類:
@model SearchScrapClass
@using(Html.BeginForm()) {
@Html.EditorFor(o => o.WClass.link)
...
}
請建議一個方法
謝謝
為了擴展我的評論,我建議為組織創建一個ViewModel文件夾。 在此添加視圖模型
public class SearchScrapClassViewModel
{
SearchScrapClass searchScrap;
WClass wClass;
SClass sClass;
YClass yClass;
}
在您的控制器中,然后您實例化新的viewmodel
SearchScrapClassViewModel model = new SearchScrapClassViewModel
{
....add in your logic to fill your class objects here
}
return view(model);
然后在您的視圖中添加viewmodel的使用。
@using SearchScrapClassViewModel
您可以通過創建包含多個對象的新模型類來傳遞多個模型。
public class MultiModel
{
SearchScrapClass searchScrap;
WClass wClass;
SClass sClass;
YClass yClass;
}
請參閱元組教程http://www.dotnetperls.com/tuple或此http://msdn.microsoft.com/en-us/library/system.tuple(v=vs.110).aspx
喜歡控制器:
public class HomeController : Controller
{
public ActionResult Index()
{
var first = new FirstModel();
var second = new SecondModel();
return View(Tuple.Create(first,second));
}
}
並且觀點:
@model Tuple
<div>
@Model.Item1.FirstModelProp
@Model.Item2.SecondModelProp
</div>
SearchScrapClassViewModel model = new SearchScrapClassViewModel
{
....add in your logic to fill your class objects here
}
我們在這里應用什么邏輯“....添加你的邏輯來填充你的類對象”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.