动作控制器是否可以接受文字对象.例如,我有几个视图,其中我想将各种模型发布到单个控制器,然后可以确定传入的模型对象以进行进一步处理.
型号样本:
public class Model1
{
// properties, etc.
}
public class Model2
{
// properties, etc.
}
public class Model3
{
// properties, etc.
}
Run Code Online (Sandbox Code Playgroud)
控制器样本:
[HttpPost]
public ActionResult ProcessModel(Object anyModel)
{
// determine the model
if((anyModel as Model1) != null)
{
var model1 = anyModel as Model1;
// continue with code
}
else if((anyModel as Model2) != null)
{
var model2 = anyModel as Model2;
// continue with code
}
// continue with model check, etc.
}
Run Code Online (Sandbox Code Playgroud)
我试过了,但我的控制器似乎没有拿起模型,因为我的对象参数仍然是空的.这可能吗?
有一个关于如何模型绑定工作快速阅读 ...模型绑定(这需要无论是发布到你的行动,并把它变成了anyModel参数使用参数的类型来决定该怎么做.
既然类型是Object它什么都不能做.
我的猜测(取决于你想要实现的目标)是你可以有几个Action重载,每个都有一个不同类型的Model作为参数然后调用公共代码.
[HttpPost]
public ActionResult ProcessModel(Model1 anyModel){}
[HttpPost]
public ActionResult ProcessModel(Model2 anyModel){}
[HttpPost]
public ActionResult ProcessModel(Model3 anyModel){}
Run Code Online (Sandbox Code Playgroud)
这说有一个动作需要很多不同的模型,这有点奇怪.做一些其他事情你很有可能会更好.
如果您说出您想要实现的目标,您的问题可能会收集更好的答案
| 归档时间: |
|
| 查看次数: |
2090 次 |
| 最近记录: |