ASP.NET MVC显示用户数据,如评论?

时间:2010-01-21 04:00:53

标签: asp.net javascript jquery

使用mvc?

显示从db显示注释/用户数据的最佳方法

我们只是做自己的for循环并手动显示它或?这样做会不会导致分页问题?任何最好的方法或做法?

jquery的?

谢谢你们。

3 个答案:

答案 0 :(得分:1)

  

是使用客户端jquery的最佳方式   与tablesorter或服务器端   循环?

我认为这两者之间没有联系。无论如何,您必须使用迭代器来获取数据库中的所有行。然后你可以使用jQuery插件来查看页面中的数据。

这是

的一个很好的实现

Table Sorting, Paging and Filtering with jQuery

答案 1 :(得分:1)

当我第一次开始学习MVC时,我在视图中放了很多条件代码来管理数据和控件的显示。但是,一旦我发现HTML帮助程序的好处,我发现它不仅减少了我的视图中的代码,而且还使得更容易测试结果输出。

例如,这是一个条目代码片段,它将出现在完成的HTML页面中:

<table class="listing">
    <tr>
         <td class="prompt">Last Name:</td>
         <td><input id="LastName" name="LastName" value="Smith" /></td>
    </tr>
    <tr>
         <td class="prompt">First Name:</td>
         <td><input id="FirstName" name="FirstName" value="John" /></td>
    </tr>
    <tr>
         <td class="prompt">Job Title:</td>
         <td><input id="JobTitle" name="JobTitle" value="Manager" /></td>
    </tr>
</table>

使用标准MVC助手构建视图将导致代码看起来像这样:

<table class="listing">
    <tr>
         <td class="prompt">Last Name:</td>
         <td><%= Html.TextBox("LastName", Model.LastName) %></td>
    </tr>
    <tr>
         <td class="prompt">First Name:</td>
         <td><%= Html.TextBox("FirstName", Model.FirstName) %></td>
    </tr>
    <tr>
         <td class="prompt">Job Title:</td>
         <td><%= Html.TextBox("JobTitle", Model.JobTitle) %></td>
    </tr>
</table>

但是,我能够创建HTML帮助程序,使我能够使视图看起来像这样:

<table class="listing">
    <%= Html.Edit_LastName(Model.LastName) %>
    <%= Html.Edit_FirstName(Model.FirstName) %>
    <%= Html.Edit_JobTitle(Model.JobTitle) %>
</table>

以下是HTML帮助程序:

private string Edit_Field(string prompt, string fieldName, string value)
{
    string textBox = helper.TextBox(fieldName, value);

    return string.Format("<tr><td class='prompt'>{0}</td><td>{1}</td></tr>", prompt, textBox);
}

public string Edit_LastName(this HtmlHelper helper, string value)
{
    return EditField("Last Name:", "LastName", value);
}

public string Edit_FirstName(this HtmlHelper helper, string value)
{
    return EditField("First Name:", "FirstName", value);
}

public string Edit_JobTitle(this HtmlHelper helper, string value)
{
    return EditField("Job Title:", "JobTitle", value);
}

此方法并不像标准方法那样简单,但如果您在多个视图上使用类似的控件,则此方法显然有助于维护。例如,如果要将提示文本从“作业标题”更改为“位置”,只需更改Edit_JobTitle方法中的提示字符串,更改将反映在调用该方法的每个视图中。

答案 2 :(得分:0)

IMO,使用迭代器。当我需要复杂的显示格式时,我使用jquery插件。当您需要访问/修改dom或进行ajax调用时,jquery itslef非常有用。分页不应影响此决定,反之亦然。