【问题标题】:MVC 5, Razor - How to create Edit Template for one property in modelMVC 5,Razor - 如何为模型中的一个属性创建编辑模板
【发布时间】:2015-10-06 05:52:09
【问题描述】:

我有一个感觉应该很容易回答的问题,但我不知道该去哪里。

我有几个采用不同模型的 cshtml 页面。但是,这些模型中的每一个都有一个共同的属性,称为 WebSiteSK,以及在每个 cshtml 文件中处理该属性的相同 razor 和 Kendo UI 代码。我想做的是将这个常见的剃须刀和剑道 UI 提取到 EditerTemplate 中。

所以,我有一个带有模型的 cshtml 页面,我将其称为 ModelA。然后,另一个采用另一个模型,称为 ModelB。 ModelA 和 ModelB 都有一个名为 WebSiteSK 的整数属性,我要提取到编辑器模板中的代码会接收该属性。

这是我想集中在编辑器模板中的代码:

<script type="text/x-kendo-tmpl" id="site-droplist-template">
    <span>#: data.WebSiteSK # - </span>
    <span><b>#: data.SiteName # </b> - </span>
    <span>#: data.EnvironmentNK #</span>
    <br />
    <span>#: data.SiteUrl #</span>
</script>

<div>
    @Html.LabelFor(model => model.WebSiteSK, new { @class = "control-label col-md-2" })
    <div class="col-md-10">
        @(Html.Kendo().DropDownList()
                .Name("WebSiteSK_Target")
                .DataTextField("SiteName")
                .DataValueField("WebSiteSK")
                .DataSource(d => d.Read("GetWebSiteList", "Site"))
                .Height(300)
                .TemplateId("site-droplist-template")
                .Filter("contains")
                .OptionLabel("Select a site")
                .Events(d =>
                    {
                        d.DataBound("onSiteBound");
                        d.Change("onSiteChange");
                    })
                )
        @Html.ValidationMessageFor(model => model.WebSiteSK, string.Empty, new { @class = "text-danger" })
    </div>
</div>

这有意义吗?谁能帮我做这个?

【问题讨论】:

    标签: razor kendo-ui asp.net-mvc-5 mvc-editor-templates


    【解决方案1】:

    您可以创建一个仅包含“WebSiteSK”属性的基类。所有具有此属性的模型都应继承此基类。然后,您可以使用要重用的代码创建局部视图“_WebSiteSK”。

    您的模型:

    public class MyModel : WebSiteSKBaseClass
    

    部分视图必须使用基类进行类型化

    @model MyProject.Models.WebSiteSKBaseClass
    

    最后,您可以将所有视图中的复制代码替换为:

    @Html.Partial("_WebSiteSK")
    

    【讨论】:

      猜你喜欢
      • 2011-08-08
      • 2011-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-01
      • 2019-12-15
      相关资源
      最近更新 更多