Trim () значения FormCollection - PullRequest
1 голос
/ 02 июня 2009

Я дурачусь с учебным пособием 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 Ответ

2 голосов
/ 02 июня 2009

Вместо использования необработанных значений формы можно использовать связыватель модели для привязки к пользовательскому объекту.

Вы можете создать свой собственный механизм связывания, внедрив интерфейс IModelBinder. В методе IModelBinder.BindModel вы можете обрезать или выполнять любые другие манипуляции со строками.

Как только это будет сделано, ваше действие получит данные, отформатированные так, как вы этого хотите.

Для получения дополнительной информации, K Скотт Аллен и Скотт Хансельман имеют несколько статей, посвященных IModelBinder.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...