Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 具有不同模型的ASP.NET MVC局部视图_C#_Asp.net Mvc_Partial Views - Fatal编程技术网

C# 具有不同模型的ASP.NET MVC局部视图

C# 具有不同模型的ASP.NET MVC局部视图,c#,asp.net-mvc,partial-views,C#,Asp.net Mvc,Partial Views,在我的索引视图中,我有通常的编辑、详细信息和删除链接。我为它们制作了图标,因为我在任何地方都使用它们,所以我将它们放在局部视图中 现在,我觉得我在这里做的不是最佳实践。所以我的问题是:如何优化它,或者最佳实践应该有什么不同 局部视图: <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MVC2_NASTEST.Models.ButtonDetail>" %> <%if (Model.

在我的索引视图中,我有通常的编辑、详细信息和删除链接。我为它们制作了图标,因为我在任何地方都使用它们,所以我将它们放在局部视图中

现在,我觉得我在这里做的不是最佳实践。所以我的问题是:如何优化它,或者最佳实践应该有什么不同

局部视图:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MVC2_NASTEST.Models.ButtonDetail>" %>
<%if (Model.edit) { %>
<a href='<%= Url.Action("Edit", Model.RouteValues) %>'>
    <img src="<%= Url.Content("~/img/pencil.png") %>" alt="Edit" width="16" /></a>
<%} if (Model.details) { %>
<a href='<%= Url.Action("Details",Model.RouteValues) %>'>
    <img src="<%= Url.Content("~/img/application_view_detail.png") %>" alt="Details" width="16" /></a>
<%} if (Model.delete) { %>
<a class="delbtn" href='<%= Url.Action("Delete",Model.RouteValues) %>'>
    <img src="<%= Url.Content("~/img/cancel.png") %>" alt="Delete" width="16" /></a>
<%} %>
using System;
namespace MVC2_NASTEST.Models {

    public partial class ButtonDetail {
        public object RouteValues { get; set; }
        public bool edit { get; set; }
        public bool details { get; set; }
        public bool delete { get; set; }
    }
}
    <% foreach (var item in Model) { %>
    <tr>
        <td>
            <% Html.RenderPartial("buttons", new MVC2_NASTEST.Models.ButtonDetail() { RouteValues = new { id = item.hlpb_ID, test = item.hlpb_Ontvanger }, edit = true, details = true, delete = true }); %>
        </td>
        <td>
            <%: item.hlpb_Titel %>
        </td>
        <td>
            <%: item.hlpb_Schooljaar %>
        </td>
        <td>
           ...
        </td>
    </tr>
    <% } %>
viewmodels是否可以或应该位于Models命名空间中?或者将它们放在不同的名称空间中?这里的最佳实践是什么

索引视图:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MVC2_NASTEST.Models.ButtonDetail>" %>
<%if (Model.edit) { %>
<a href='<%= Url.Action("Edit", Model.RouteValues) %>'>
    <img src="<%= Url.Content("~/img/pencil.png") %>" alt="Edit" width="16" /></a>
<%} if (Model.details) { %>
<a href='<%= Url.Action("Details",Model.RouteValues) %>'>
    <img src="<%= Url.Content("~/img/application_view_detail.png") %>" alt="Details" width="16" /></a>
<%} if (Model.delete) { %>
<a class="delbtn" href='<%= Url.Action("Delete",Model.RouteValues) %>'>
    <img src="<%= Url.Content("~/img/cancel.png") %>" alt="Delete" width="16" /></a>
<%} %>
using System;
namespace MVC2_NASTEST.Models {

    public partial class ButtonDetail {
        public object RouteValues { get; set; }
        public bool edit { get; set; }
        public bool details { get; set; }
        public bool delete { get; set; }
    }
}
    <% foreach (var item in Model) { %>
    <tr>
        <td>
            <% Html.RenderPartial("buttons", new MVC2_NASTEST.Models.ButtonDetail() { RouteValues = new { id = item.hlpb_ID, test = item.hlpb_Ontvanger }, edit = true, details = true, delete = true }); %>
        </td>
        <td>
            <%: item.hlpb_Titel %>
        </td>
        <td>
            <%: item.hlpb_Schooljaar %>
        </td>
        <td>
           ...
        </td>
    </tr>
    <% } %>

...
尤其是索引视图中的部分在我看来并不是最佳实践

viewmodels是否可以或应该位于Models命名空间中

要将它们与模型分开,可以将它们放置在ViewModels命名空间中。就索引视图而言,您可以使用

viewmodels是否可以或应该位于Models命名空间中


要将它们与模型分开,可以将它们放置在ViewModels命名空间中。就索引视图而言,您可以使用。

我认为局部视图在这里对您没有帮助

<a href='<%= Url.Action("Edit") %>'>
    <img src="<%= Url.Content("~/img/pencil.png") %>" alt="Edit" width="16" /></a>

那不是更糟吗

<% Html.RenderPartial("buttonEdit"); %>

即使你发现所有的按钮应该共享相同的样式,我也会在这里使用css


作为补充说明,不要在删除操作中使用get。搜索爬虫可能会在扫描站点时删除您的所有条目。即使它是一个内部网站,这也不是一个好主意。使用post。

我认为这部分内容对您没有帮助

<a href='<%= Url.Action("Edit") %>'>
    <img src="<%= Url.Content("~/img/pencil.png") %>" alt="Edit" width="16" /></a>

那不是更糟吗

<% Html.RenderPartial("buttonEdit"); %>

即使你发现所有的按钮应该共享相同的样式,我也会在这里使用css


作为补充说明,不要在删除操作中使用get。搜索爬虫可能会在扫描站点时删除您的所有条目。即使它是一个内部网站,这也不是一个好主意。使用post。

您是建议我删除部分视图,还是仅仅编写一个模板来替换索引视图中的此代码。我在运行中生成模型,这样代码在这种情况下实际上是相同的。您是建议我删除部分视图,还是只是编写一个模板来替换索引视图中的代码。我动态生成模型,这样代码在这种情况下实际上是相同的删除通过jQuery确认模式和
$.post
进行,因此无需担心。那你有什么建议?做3个独立的部分?使用这个部分的目的是使我的代码干涸。你是说这个图像应该是CSS?忘了部分?谁说我用的是get?:)删除通过jQuery确认模式和
$.post
进行,因此无需担心。那你有什么建议?做3个独立的部分?使用这个部分的目的是使我的代码干涸。你是说这个图像应该是CSS?忘了那部分吧?