首页 新闻 赞助 找找看

ASP.NET MVC TryUpdateModel 时的一个怪现象,求围观,求解释

0
悬赏园豆:50 [已解决问题] 解决于 2011-07-22 13:14

一个编辑页面的post controller函数如下

public ActionResult Edit(int id, FormCollection collection)
        {
            Asset a = db.Asset.Find(id);
            TryUpdateModel(a, "",null, new string[] { "CompanyId" });

             if (ModelState.IsValid)
            {

。。。 这段代码对asset对象进行赋值,接下来如果成功则保存。我在开发机器上运行正常,但在部署服务器上,isValid总是false,调测发现,collection在部署服务器上 key里面有一个 “” 空字符串,这样在tryupdatemodel里面就报错了。

可是用fiddler察看post数据,里面都是标准的 xxx=yyy&....,不明白为什么会冒出这个空字符串的key来。

开发环境和部署环境的区别在于,开发是WIN7而部署的服务器是WIN2003

问题补充:

补充一下

post回去的数据确实有 &=xxx 这样的,所以 collection里面的key有空字符串。

在iis7上面,这个东西会被过滤掉,而在iis6则依然存在,所以tryupdatemodel就错了。

怎么办?

顺便说一下,这个&=2011-1-1&。。。是我用了easyui里面日期输入控件,唉,他自己生成的input,不知道怎么改。

Simple is best的主页 Simple is best | 初学一级 | 园豆:20
提问于:2011-07-20 11:54
< >
分享
最佳答案
0

collection.Remove("");
TryUpdateModel(a,
"", null, new string[] { "CompanyId" }, collection);

收获园豆:50
鹤冲天 | 老鸟四级 |园豆:2379 | 2011-07-20 15:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册