簡體   English   中英

如何在ASP.NET MVC中傳遞多個模型?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM