Asp.net MVC UpdateModel () Префикс без магической строки? - PullRequest
1 голос
/ 14 ноября 2009

Есть ли способ иметь строго типизированный UpdateModel(myEntity, MagicStringPrefix) без магической строки?

Итак, у меня есть модель вида, похожая на

public class FooViewModel {
    public Foo Foo { get; set; }
    ...
}

И в моем контроллере у меня есть

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(int id, FormCollection collection)
{
    var foo = _fooRepo.GetFoo(id);

    try
    {
        UpdateModel(foo, "Foo");
        _fooRepo.Save();

        return RedirectToAction("Index");
    }
    catch (Exception ex)
    {
        return View(new FooViewModel(foo));
    }
}

Я хотел бы сделать это, не используя магические строки. Что-то вроде UpdateModel(foo, Model.Foo) было бы хорошо. Тем не менее, я предпочитаю , чтобы просто иметь UpdateModel(foo) и сделать из него префикс, учитывая, что Foo является именем класса, но я действительно не хочу писать свой собственный ModelBinder.

Ответы [ 2 ]

3 голосов
/ 14 ноября 2009

Вы можете определить свой собственный метод обновления:

    protected void MyUpdateModel<T>(T model) where T : class
    {
        UpdateModel(model, model.GetType().Name);
    }
0 голосов
/ 14 ноября 2009

Вы должны иметь возможность передавать строго типизированный объект в вашем методе действия при условии, что у вас совпадают все имена свойств. Я не думаю, что вам нужно написать собственную модель привязки для достижения этой цели.

Прочтите этот блог , чтобы получить представление.

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