0

有沒有辦法在不訪問參數的情況下獲得model的類型?在控制器中獲取模型的類型

我的控制器:

[HttpPost] 
public ActionResult SomeAction(SomeViewModel model) 
{ 
    SomeMethod(/* How to pass models's type here? */) 
} 

private void SomeMethod(Type type) 
{ 
    // come code 
} 

方法SomeMethod(Type type)將在許多其他動作被調用。並且

Type modelType = typeof(SomeViewModel); 
or 
Type modelType = model.GetType(); 

不適合。

+0

要在視圖中使用模型,您必須在頂部定義模型的類型。我不明白你在這裏試圖完成什麼 –

+0

對不起。我忘了添加帖子屬性。 –

+0

再次,您的模型在這裏定義。我能想到的將多個模型發送到一個動作的唯一方法是定義它們(SomeViewModel模型,SomeViewModel2模型2等等,在這一點上你可以做一個空檢查來查看哪一個通過了 –

回答

0

您是否正在討論View的情況?如果是,那麼你可以使用ViewModel類創建強類型的View。然後,您將在View中擁有該模型的類型。 View中最頂端的一行。

0

我認爲模型存在誤解,表單提交給服務器。 在大多數情況下,模型有幾個有關該頁面的信息,如標題,描述,用戶配置等。 當您在窗體上按下提交時,您只向表單中包含的字段發送操作。這意味着,大多數數據是不是在動作用,您必須手動

創建看一看該代碼:

<h1>@Model.ArticleTitle</h1> 
<p>@Model.ArticleDescription</p> 
<form method="post"> 

@Html.EditFor(x=> x.CommentTitle) 
@Html.EditFor(x=> x.CommentBody) 

</form> 

在瀏覽器向服務器發送只有CommentTitle和這種情況下, CommentBody。 ArticleTitle和ArticleDescription不發送。

.u

相關問題