修剪()FormCollection值

时间:2009-06-02 14:30:30

标签: c# asp.net-mvc

我正在使用NerdDinner教程晚餐编辑控件 我得到一个FormCollection作为参数之一,我可以在使用UpdateModel()之前修剪它中的数据。

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Edit(int id, FormCollection formValues)
    {
        Dinner dinner = dinnerRepository.GetDinner(id);
        try
        {
            UpdateModel(dinner);
            dinnerRepository.Save();
            return RedirectToAction("Details", new { id = dinner.DinnerID });
        }
        catch
        {
            foreach (var issue in dinner.GetRuleViolations())
            {
                ModelState.AddModelError(issue.PropertyName, issue.ErrorMessage);
            }
            return View(dinner);
        }
    }

或者我必须通过迭代Request.Form键手动执行此操作吗?

1 个答案:

答案 0 :(得分:2)

您可以使用模型绑定器绑定到自定义对象,而不是使用原始表单值。

您可以通过实现IModelBinder接口来创建自己的模型绑定器。在IModelBinder.BindModel方法中,您可以修剪或执行您想要的任何其他字符串操作。

完成此操作后,您的操作将按照您希望的方式接收格式化数据。

有关详细信息,K Scott Allen和Scott Hanselman有一些文章涵盖了IModelBinder。