MVC怎麼在同乙個action返回兩個表的資料

2022-08-19 07:39:14 字數 1364 閱讀 2395

一般返回乙個model這樣

@model mvcmusicstore.models.album 

方法:public actionresult details(int id)        

這個頁面不止乙個model,還有其他的,那麼

details/id,僅僅返回這乙個return view(album);     我想返回其他model,在這個url裡面和方法怎麼寫

details/id?type=4,我想再返回型別的model

@model mvcmusicstore.models.album

@model2 mvcmusicstore.models.albumtype

如上,控制器裡面返回2個model,按照我的理解應該這樣

public actionresult details(int id,int type)       

收第乙個做法是:將這兩個物件組合成乙個物件返回

第二個做法是:使用viewbag

使用viewbag

重新建立乙個model,然後將現在的兩個model合併到新新增的model裡面,盡可能的使用強型別

第一種方法:使用viewmodel概念,即建立乙個新的class,將所有model都做為它的屬性出現,這裡你直接返回這個viewmodel即可,如:

public class userviewmodel

public user_extension user_extension

}第二種方法:使用viewdata或者mvc3裡的viewbag都可以

public user_info user_info

public user_extension user_extension

這樣的話寫回資料時就繫結不上了吧?

viewdata

viewbage

不需要返回兩個model。你只需要如下:

public actionresult details(int id,int type)       

view中:

@model album

@是的,快捷的辦法就是viewbag就解決了,但是從設計角度去理解的話,還是用viewmodel,將所有model都做為viewmodel的屬性出現,最後返回viewmodel就行了。

兩種方式 

1:使用viewbag 把另外乙個model存放進viewbag中 viewbag.model=model2,在view頁面取值       

var mode2= viewbag.model2 as  baddebt;

2:使用viewmodel  最好是把你需要的字段和你可能需要的字段寫進乙個自定的model類中,返回給頁面,這樣就可以通過乙個model實現了你的需求

在同乙個程式中結合C

在同乙個程式中結合c 和c 在同乙個程式中結合c 以及c我們需要注意的4大主題 1.name mangling 名稱重整 2.statics 靜態物件初始化 3.動態記憶體分配 4.資料結構的相容性。對於名稱重整 我們知道在c 中由於過載的存在我們需要對函式的名稱進行重整,但是c的函式我們就不需要重...

怎麼樣判斷兩個IP位址是否在同乙個網段

怎麼樣判斷兩個ip位址是否在同乙個網段 方法1.通過自身的ip與自身掩碼算出網路位址x 2.通過目的ip與自身掩碼算出目的地的網路位址y 3.如果這兩個網路一樣 x y 則表示目的地與自身在乙個網路內 4.如果兩個網路不一樣 x不等於y 則表示目的地與自身不在乙個網路內 舉個例子1 a 192.16...

php 在同乙個表單中新增和修改

我的方法是在同乙個表單中做文章,下面的例子是我用 thinkphp框架寫的 如果你不懂thinkphp,沒有關係,我只是想說說我的解決方案.前台如果是這樣的.說明,表示提交到article控制器的add方法.進行接收操作.就是這樣乙個簡單的表單,我們在後台直接接收資料.public function...