HTML输入添加数据到指定区域,将数据添加到来自MVC区域的_Layout.cshtml中的常见_Layout.cshtml...

该博客探讨了如何在ASP.NET MVC的视图布局中使用ViewBag来传递和呈现数据。作者建议通过创建HTML助手方法来减少代码重复,提高代码的可读性和可维护性。示例中展示了如何定义`AddCommonListItems`和`CommonList`两个HTML助手方法,以更整洁地添加和显示列表项。这种方法有助于统一和简化区域与主布局之间的数据传递。
摘要由CSDN通过智能技术生成

您可以尝试使用ViewBag。

我已经做了一个快速的测试,将一个名为Items的属性添加到ViewBag中。这将从每个区域填充(通过添加自己的项目),并从主布局添加通用项目。然后它将用于呈现主布局中的项目列表。

区域1 \查看\ Shared_Layout.cshtml

@{

ViewBag.Title = "_Layout";

Layout = "~/Views/Shared/_Layout.cshtml";

if (ViewBag.Items == null){ViewBag.Items = new List();}

ViewBag.Items.Add("Area1 item");

}

Area1 Layout

@RenderBody()

查看\ Shared_Layout.cshtml(的一部分)

@{

if (ViewBag.Items == null){ViewBag.Items = new List();}

ViewBag.Items.Add("Common Item");

}

@foreach (var item in ViewBag.Items)

{

@item @* List should contain two items: "Area1 Item", and "Common Item" *@

}

我不喜欢太多的代码看起来如何,因为它重复了很多次,并且传播了ViewBag.Items的用法。通过使用Html助手将项目添加到列表并呈现列表,它可能会更清晰。例如,您可以创建以下2个HTML辅助:

public static class HtmlHelpers

{

public static void AddCommonListItems(this HtmlHelper helper, params string[] values)

{

if(helper.ViewContext.ViewBag.Items == null) helper.ViewContext.ViewBag.Items=new List();

helper.ViewContext.ViewBag.Items.AddRange(values);

}

public static MvcHtmlString CommonList(this HtmlHelper helper)

{

if (helper.ViewContext.ViewBag.Items == null)

return new MvcHtmlString(new TagBuilder("ul").ToString());

var itemsList = new TagBuilder("ul");

foreach (var item in helper.ViewContext.ViewBag.Items)

{

var listItem = new TagBuilder("li");

listItem.SetInnerText(item);

itemsList.InnerHtml += listItem.ToString();

}

return new MvcHtmlString(itemsList.ToString());

}

}

然后你的意见会显得更清洁,因为他们只会使用那些佣工,并避免重复代码:

区域1 \查看\ Shared_Layout .cshtml(使用新的HTML佣工)

@{

ViewBag.Title = "_Layout";

Layout = "~/Views/Shared/_Layout.cshtml";

Html.AddCommonListItems("Area1 item", "Area1 item 2");

}

Area1 Layout

@RenderBody()

查看\ Shared_Layout.cshtml(它的一部分,采用新的HTML佣工)

@{Html.AddCommonListItems("Common Item");}

@Html.CommonList()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值