2013-08-23 3 views
1

У меня есть веб-приложение, которое разрабатывается с использованием C# MVC4 и jQuery/AJAX. То, что я хотел бы сделать, это показать пользователю, где они могут обновлять определенные свойства конкретной модели, не отправляя всю форму. Например, один из объектов сущности из базы данных является классом «Задача». Этот класс имеет несколько свойств (TaskName, TaskDescription и т. Д.). Идея состоит в том, чтобы отобразить представление, в котором перечислены эти свойства, и пользователь может щелкнуть каждый по отдельности, показывая текстовое поле, заполненное значением свойства, которое они могут редактировать. Я хочу иметь возможность сохранять каждое редактирование по требованию (используя кнопку рядом с каждым текстовым полем) по мере необходимости и включать проверку в каждое поле. Как я смогу структурировать контроллер/viewModel (s), чтобы разместить это? Будет ли у меня несколько функций контроллера для каждого поля? Одна функция «edit», чтобы принять всю модель?Использование MVC4 - лучшая практика для обновления элементов модели

+3

Это не конкретная проблема. Начните с изучения MVC, а затем вы можете использовать то, что научились решать эту проблему. http://www.asp.net/mvc/tutorials/mvc-5/introduction/getting-started – speti43

+0

Так как это основы ASP.NET MVC 4, я рекомендую вам посмотреть превосходные видеоуроки, найденные на http://www.asp.net/mvc. Вы должны начать изучать MVC, прежде чем задавать вопросы об этом :) – neeKo

ответ

3

В действительности объем данных в поданной форме очень мал по сравнению с большинством других компонентов веб-сайта, поэтому нет никакой проблемы при представлении «всей формы». Вы можете отправить всю свою модель обратно на свое действие после каждого обновления (у вас может быть несколько кнопок отправки для одной и той же формы) и одно действие контроллера, которое обновит вашу базу данных новой моделью.

Однако, если вы хотите обновить каждый компонент отдельно, то вы можете иметь индивидуальные формы для каждого значения, которые представляют это значение и TaskId. Они будут подчиняться различным действиям, каждый из которых должен будет найти модель, которую вы хотите обновить, и обновите ее.

Лично я бы предпочел бывшую, так как это упрощает вашу архитектуру и требует гораздо меньше кода.

+1

Другая проблема, которую решает целая форма, - это вопрос * проверки уровня объекта *. В реальных приложениях вы редко проверяете поле за полем, но часто должны проверять весь объект модели, поскольку разные поля могут быть взаимоисключающими, или, чаще всего, некоторые значения полей имеют побочные эффекты в других полях и т. Д. Поэтому для того, чтобы модель была последовательной (логически, с точки зрения бизнес-правил), вы должны изучить ее целиком, а самый простой способ сделать это без гражданства - опубликовать весь объект, который либо совершает, либо терпит неудачу, как все. –

Смежные вопросы