あなたはこのASP.NET MVCのビューの構文を使用しますか?
-
23-08-2019 - |
質問
私は<のhref = "https://stackoverflow.com/questions/390693/does-anyone-beside-me-just-not-get-でASP.NET MVCのビューのためのより良い構文と思われるもの提案しましたASPNET-MVC#391382" >この質問を。その質問が回答されているので、私は私の答えは少しフィードバックを生成すると思うので、私はここに、独自の問題としてそれを掲示しています。
解決
あなたは正しい軌道に乗っているが、私はあなたがあまりにも遠くに行ったと思います。バランスがそれを複雑にし、また、タグのスープを作成しない上を流れなくHTMLでコードが混合されています。私はこれを行うことを発見した最高のビューエンジンは、がのスパークです。
それを見て、あなたはそれはあなたがより多くの微妙かつ読みやすい形で提案されているものを見つけることに対処されます。
他のヒント
あなたはコードを表現するためのマークアップを使用しています。私の意見は次のとおりです。コードが必要な場合、単にいつもより柔軟なコードを使用しています。マークアップが必要な場合は、マークアップを使用します。 この記事では正確に私のポイントを説明します。 時には、コードとマークアップの間の線は、しかし、ぼやけてます。
私は本当に人々は、プログラミング言語としてXMLを処理することを停止することを願っています。
たぶん、あなたはこれを使用する必要があります> "MVCの構文" の代わりに、と呼ばれるHAMLます。
%h2= Model.CategoryName
%ul
- foreach (var product in Model.Products)
%li
= product.ProductName
.editlink
= Html.ActionLink("Edit", new { Action="Edit", ID=product.ProductID })
= Html.ActionLink("Add New Product", new { Action="New" })
置き換え
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" AutoEventWireup="true"
CodeBehind="List.aspx" Inherits="MvcApplication5.Views.Products.List" Title="Products" %>
<asp:Content ContentPlaceHolderID="MainContentPlaceHolder" runat="server">
<h2><%= ViewData.Model.CategoryName %></h2>
<ul>
<% foreach (var product in ViewData.Model.Products) { %>
<li>
<%= product.ProductName %>
<div class="editlink">
(<%= Html.ActionLink("Edit", new { Action="Edit", ID=product.ProductID })%>)
</div>
</li>
<% } %>
</ul>
<%= Html.ActionLink("Add New Product", new { Action="New" }) %>
</asp:Content>
また、JSPを見てみましょう:彼らは、JSPマークアップのコードの電力の一部を取得するために、「式言語」を導入しなければなりませんでした。結果は本当に厄介な私見です。それも、この表現言語から簡単な機能にアクセスするために(もちろん、XMLで)明示的なマッピングを必要とします。
このを参照してください。
maucschとマットのポイントに加えて、これは、サーバーがメモリにロードし、探しているページ全体を解析しなければならないという意味ではないだろう「MVC:」?そして、Webフォームを使用しないような理由の一つではないでしょうか?