【发布时间】:2015-04-15 12:44:05
【问题描述】:
我的控制器带有包含代码的操作,看起来像
public ActionResult Index(FormCollection data)
{
var type = findTypeByName(data["CastToTypeName"]);
var model = transformRequestDataToType(data/* or may be Request*/, type) as DbEntity;
SaveData(model);
...
}
有没有办法将请求数据转换为运行时已知类型的对象?
我使用<form> 将数据发布到控制器并尝试在不将表单数据更改为 json 的情况下找到解决方案。
【问题讨论】:
-
这看起来很危险。对于(邪恶的)用户来说,这是一种非常方便的方式来修改他们想要的任何数据库数据。
-
这是一个小站点的管理部分,所以我只是通过为控制器添加身份验证来阻止任何此类可能性。
-
在我看来,您忘记强制表单类实现接口。如果您希望 MVC 工作,这非常重要。
标签: c# asp.net-mvc formcollection