2010-03-16 99 views
0

好吧,我可以使用jeditable在页面上编辑一些内容,内容将被保存到数据库。但是,从db获取文本内容以显示给占位符的最佳方式是什么?Asp.net MVC,使用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

您的伪代码意味着您希望视图负责获取所需的数据,这是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的博客文章),但上面的示例应该说明如何将数据从控制器传递到视图。