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?忘了那部分吧?