C# 在视图中使用多个模型过帐
因此,我有一个C# 在视图中使用多个模型过帐,c#,asp.net-mvc-4,C#,Asp.net Mvc 4,因此,我有一个视图,其中包含2个模型。每个型号都有自己的表单和提交按钮 目前,我有两个提交按钮是由相同的控制器方法处理的,并使用反射确定传递了哪种模型类型。但似乎有更好的方法。。。有什么想法吗 我有这样的想法: 型号: public class Model1 { // Elements } public class Model2 { // Elements } 控制器: public ViewResult ConMeth(Object model) { Type t = mode
视图
,其中包含2个模型
。每个型号
都有自己的表单和提交按钮
目前,我有两个提交按钮是由相同的控制器
方法处理的,并使用反射
确定传递了哪种模型类型。但似乎有更好的方法。。。有什么想法吗
我有这样的想法:
型号:
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...
}
}
如果您显示视图信息,我怀疑您在视图中发生了两件不同的事情。只要把每件事都以它自己的形式,并使用
@using (Html.BeginForm(...)){}
并在BeginForm参数中按名称和控制器(如有必要)指定操作。。。这将消除不明确的引用错误
是一个带有较旧(不是razor)标签的示例如果显示视图信息,我怀疑视图中发生了两件不同的事情。只要把每件事都以它自己的形式,并使用
@using (Html.BeginForm(...)){}
并在BeginForm参数中按名称和控制器(如有必要)指定操作。。。这将消除不明确的引用错误
例如,使用较旧的(不是razor)标记,您可以在视图中使用元组来创建两个视图模型,然后在每个表单的@Html.BeginForm()helper方法中,您可以指定到两个不同控制器的POST来处理表单数据
@model Tuple<ProjectName.Models.Model1, ProjectName.Models.Model2>
@模型元组
您可以在视图中使用一个元组来拥有两个视图模型,然后在每个表单的@Html.BeginForm()helper方法中,您可以指定到两个不同控制器的POST来处理表单数据
@model Tuple<ProjectName.Models.Model1, ProjectName.Models.Model2>
@模型元组
想要执行同一控制器操作的动力是什么。。。发布到单独的操作会消除这个问题。你想要一个使用ajax或常规回发的示例吗?@Rikon:这就是我计划的路径。但我不断得到:当前对控制器类型“ConMeth”的操作“Manage”的请求在以下操作方法之间不明确
@FeistyMango:Postbackidea@AlexeiLevenkov我总是认为(也许是错误的),查看元数据(<代码> GETType()>代码>是一种反射的形式。方法就是感觉不一样:)想要执行相同控制器操作的动力是什么。。。发布到单独的操作会消除这个问题。你想要一个使用ajax或常规回发的示例吗?@Rikon:这就是我计划的路径。但我不断得到:当前对控制器类型“ConMeth”的操作“Manage”的请求在以下操作方法之间不明确
@FeistyMango:Postbackidea@AlexeiLevenkov我总是认为(也许是错误的),查看元数据(<代码> GETType()>代码>是一种反射的形式。方法就是感觉不一样:)doh!明显地这把它修好了!明显地这把它修好了。