1、怎么自动截断文本?
如题,当数据库中的数据内容超出了要显示的长度时,如果不采取措施,会破坏页面的布局美观,所以可以采用自动截断文本,需要查看的时候再把其他的内容显示出来。
没截断的时候如下图:
再视图中添加如下代码便可实现截断功能:
@helper Truncatestring input, int length) { if input.Length <= length) { @input } else { @input.Substring0, length)<text>...</text> } }
<td> @Truncateitem.Title, 25) </td> <td> @Html.DisplayFormodelItem => item.Price) </td>
看到后面的省略号没有,那就是效果:
2、MVC怎么分页?
当要把数据库中的数据以分页的形式显示出来,可以用到一个分页插件PagedList,可以在VS2013中MSDN论坛搜索下载即可。
首先在bin文件夹下右键点击管理NuGet程序包,搜索并引用程序集:
然后在控制器Index动作中添加如下代码:
public ActionResult Indexint page = 2) { const int PageSize = 1; Models.MvcBookStoreEntities1 db = new Models.MvcBookStoreEntities1); var Iuser = db.Books.OrderByp => p.BookId).ToPagedListpage, PageSize); return ViewIuser); }
在相应视图中添加如下代码,便可以实现分页了:
@Html.PagedListPagerIPagedList)Model, page => Url.Action"Index", new { page }), new PagedListRenderOptions { LinkToPreviousPageFormat = "上一页", LinkToNextPageFormat = "下一页", MaximumPageNumbersToDisplay = 5 })
效果如下图所示:
3、怎么使用Linq中的Take和ToList方法
首先在Index动作中添加如下代码:
Models.MvcBookStoreEntities1 db = new Models.MvcBookStoreEntities1); var data = db.Categories.Take5).ToList); return Viewdata);
然后在添加视图,把原视图调整一下:
<ol> @foreach var item in Model) { <li> <h5> @Html.ActionLink@item.Name, "Browse", new { id = @item.CategoryId }) </h5> </li> } </ol>
运行结果如下图:
4、怎么使用@Html.ActionLink)和@Url.Action):
@Html.ActionLink)可以有3个参数,比如:
@Html.ActionLink@item.Name, "Browse", new { id=@item.CategoryId})
第一个参数是要显示出来的字段,第二个是控制器中动作方法名,第三个是要传递的参数
@Url.Action)可以有两个参数,比如:
<a href="@Url.Action"Details",new {id=book.BookId})">
第一个参数动作名,第二个是要传递到Details中的参数。
电放费