Asp.net MVC,使用jeditable(编辑到位)

时间:2010-03-16 06:44:33

标签: asp.net-mvc

好的,我可以使用jeditable在页面上编辑一些内容,并将内容保存到数据库中。但是最好的方法是从db中获取文本内容以显示到占位符?

 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进行就地编辑,但是当我刷新页面时,它会显示相同的“Some here here”,因为它没有从db获取数据。

1 个答案:

答案 0 :(得分:1)

您的伪代码意味着您希望视图负责获取所需的数据,这是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>

更好的方法是创建一个强类型的视图模型(Stephen Walther有一篇关于视图模型here的博客文章),但上面的例子应该说明如何将数据从控制器传递到视图