Asp.net MVC, после использования jeditable (редактировать на месте) - PullRequest
0 голосов
/ 16 марта 2010

Хорошо, я могу использовать jeditable для редактирования на месте некоторого контента на странице, и контент будет сохранен в базе данных. Но как лучше всего получить этот текстовый контент из БД для показа в качестве заполнителя?

 p id="paraNo34" class="editable"
    -->What i will write here so that it will get content from a 
       db's table: [Content], where id=="paraNo34".
 /p

Проблема в том, что я буду использовать какой-то жестко закодированный текст, например

  p id="paraNo34" class="editable"
    -->Some text here
  /p

Я смогу редактировать на месте, используя jeditable, но когда я обновлю страницу, она покажет тот же "Некоторый текст здесь", что и не получает данные из БД.

1 Ответ

1 голос
/ 16 марта 2010

Ваш псевдокод подразумевает, что вы хотите, чтобы представление отвечало за выборку необходимых данных, что является анти-паттерном в MVC. Вам необходимо извлечь текст в действии контроллеров и передать его представлению, используя ViewData или пользовательскую модель представления, например ::

.
public ActionResult Index(string id)
{
    // call some method to fetch data from db
    ViewData["ID"] = id;
    ViewData["Content"] = content;
    return View();
}

И вид выглядит примерно так:

<p id='<%= ViewData["ID"] %>' class="editable">
    <%= Html.Encode(ViewData["Content"]) %>
</p>

Лучшим подходом было бы создание модели представления со строгим типом (у Стивена Уолтера есть запись в блоге о моделях представления здесь ), но приведенный выше пример должен иллюстрировать, как данные могут передаваться из контроллера вид.

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