Insist

Insist,第1张

Insist

1、怎么自动截断文本?

如题,当数据库中的数据内容超出了要显示的长度时,如果不采取措施,会破坏页面的布局美观,所以可以采用自动截断文本,需要查看的时候再把其他的内容显示出来。


没截断的时候如下图:

视图添加如下代码便可实现截断功能:

@helper Truncate(string input, int length)
{
if (input.Length <= length)
{
@input
}
else
{
@input.Substring(, length)<text>...</text>
}
}
<td>
@Truncate(item.Title, 25)
</td>
<td>
@Html.DisplayFor(modelItem => item.Price)
</td>

看到后面的省略号没有,那就是效果:

2、MVC怎么分页?

当要把数据库中的数据以分页的形式显示出来,可以用到一个分页插件PagedList,可以在VS2013中MSDN论坛搜索下载即可。


首先在bin文件夹下右键点击管理NuGet程序包,搜索并引用程序集:

然后在控制器Index动作中添加如下代码:

public ActionResult Index(int page = )
{
const int PageSize = ;
Models.MvcBookStoreEntities1 db = new Models.MvcBookStoreEntities1();
var Iuser = db.Books.OrderBy(p => p.BookId).ToPagedList(page, PageSize);
return View(Iuser);
}

在相应视图中添加如下代码,便可以实现分页了:

@Html.PagedListPager((IPagedList)Model, page => Url.Action("Index", new { page }), new PagedListRenderOptions { LinkToPreviousPageFormat = "上一页", LinkToNextPageFormat = "下一页", MaximumPageNumbersToDisplay =  })

效果如下图所示:

3、怎么使用Linq中的Take和ToList方法

首先在Index动作中添加如下代码:

Models.MvcBookStoreEntities1 db = new Models.MvcBookStoreEntities1();
var data = db.Categories.Take().ToList();
return View(data);

然后在添加视图,把原视图调整一下:

<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 { [email protected]})

第一个参数是要显示出来的字段,第二个是控制器中动作方法名,第三个是要传递的参数

@Url.Action()可以有两个参数,比如:

<a href="@Url.Action("Details",new {id=book.BookId})">

第一个参数动作名,第二个是要传递到Details中的参数。


电放费

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/589521.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-12
下一篇 2022-04-12

发表评论

登录后才能评论

评论列表(0条)

保存