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();

不适合。

4

2 回答 2

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

于 2014-01-15T17:00:48.537 回答
0

您是在 View 的上下文中谈论的吗?如果是,那么您可以使用 ViewModel 类之一创建强类型视图。然后,您将在 View 中拥有该模型的类型。视图中的最上面一行。

于 2014-01-15T16:49:59.800 回答