gpt4 book ai didi

asp.net-mvc-3 - ASP.NET MVC 3 局部 View 模板

转载 作者:行者123 更新时间:2023-12-05 01:35:29 25 4
gpt4 key购买 nike

老实说,我不知道如何称呼它或如何开始搜索它。

我有一个标准布局的显示页面。

<div>
<label for="field">Field Name:</label>
@Model.Field
</div>

在尝试使这种更改更友好的同时,我想制作一个模板,而不是使用上述代码输入每个字段。

我用以下内容创建了一个局部 View :
@model System.Object
<div>
@Html.LabelFor(m => m)
@Html.DisplayFor(m => m)
</div>

在我看来,我添加了以下内容:
@Html.Partial("_BillField", Model.Field)

然后该模型具有如下描述:
public ModelName {
[Display(Name="Field Description")]
public decimal Field { get; set; }
}

这在主 View 上有效,但在使用模板时标签丢失。我错过了什么?

更新:每@K。 Bob 我对局部 View 进行了更改:
<div>
@Html.LabelFor(m => m)
@Html.DisplayFor(m => m)
</div>

更新 2:为了清楚我想要什么。

最后,我希望能够做到:
@Html.Partial("_BillField", Model.Field1)
@Html.Partial("_BillField", Model.Field2)
@Html.Partial("_BillField", Model.Field3)

并具有等效于:
<div>
<label for="field1">Field 1 Name:</label>
@Model.Field1
</div>
<div>
<label for="field2">Field 2 Name:</label>
@Model.Field2
</div>
<div>
<label for="field3">Field 3 Name:</label>
@Model.Field3
</div>

很抱歉没有说得更清楚。

最佳答案

部分不需要告诉@model 是什么,它将使用父@model,如果您在部分中取出@model 有帮助吗?

如果我有这个观点......

@model MyApp.Models.ModelName
@{
ViewBag.Title = "Test";
}

<h2>Test</h2>
<div>
<div class="editor-label">
@Html.LabelFor(m => m.Field)
</div>
<div class="editor-field">
@Html.TextBoxFor(m => m.Field)
@Html.ValidationMessageFor(m => m.Field)
</div>
</div>
@Html.Partial("_partial", Model) @*note I pass the whole model*@

而这作为部分......
@model MyApp.Models.ModelName
<div>
<div class="editor-label">
@Html.LabelFor(m => m.Field)
</div>
<div class="editor-field">
@Html.TextBoxFor(m => m.Field)
@Html.ValidationMessageFor(m => m.Field)
</div>
</div>

然后它做我认为你想做的事情(obv。它做了两次,但你可以从主 View 中删除代码)。
我不确定它会给你带来巨大的好处。也许我误解了一些东西。

关于asp.net-mvc-3 - ASP.NET MVC 3 局部 View 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8215854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com