2013-04-27 33 views
1

所以我有一個View其中包含2 models。每個model都有自己的表單並提交按鈕。在一個視圖中發佈多個模型

目前,我有兩個提交按鈕都是由相同的controller方法處理,並使用reflection來確定哪個模型類型已通過。但似乎有更好的辦法......任何想法?

我有這樣的事情:

型號:

public class Model1 
{ 
    // Elements 
} 

public class Model2 
{ 
    // Elements 
} 

控制器:

public ViewResult ConMeth(Object model) 
{ 
    Type t = model.GetType(); 
    if(t == typeof(Model1) 
    { 
    // Do work for Model1 
    } 
    else if(t == typeof(Model2) 
    { 
    // Do work for Model2 
    } 
    else 
    { 
    // Do something else... 
    } 
} 
+0

什麼是爲希望去同一個控制器動作...張貼到單獨的行動將消除這個問題看似 – Rikon 2013-04-27 04:09:22

+0

你想使用AJAX或定期回發一個例子的動力? – 2013-04-27 04:09:46

+0

@Rikon:那是我計劃的路徑。但是我一直得到:'當前對控制器類型'ConMeth'採取行動'管理'的請求在下列動作方法之間不明確:' – Andrew 2013-04-27 04:12:29

回答

1

如果顯示瀏覽信息,我懷疑你有兩個不同的事情發生在風景。只要把每一件事情在自己的形式和使用

@using (Html.BeginForm(...)){} 

並指定名稱在BeginForm PARAMS的動作和控制器(如有必要)...這應該擺脫曖昧引用錯誤的

Here就是一個例子瓦特/舊的(不是剃刀)標籤

+0

doh!很顯然...這固定它。 – Andrew 2013-04-27 04:59:46

0

你可以使用一個元組<>在你看來有兩個視圖模型,然後在@ Html.BeginForm()輔助方法爲每個表單,你可以指定POST到兩個不同的控制器來處理你的表單數據。

@model Tuple<ProjectName.Models.Model1, ProjectName.Models.Model2> 
相關問題