我做错了这是ASP.NET MVC beta的一个已知问题吗?
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="MyProject.Web.Views.Searching.Index" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
<%Html.BeginForm("SearchForBusiness", "BusinessSearch", FormMethod.Post); %>
<select id="myid" name="myid">
<%foreach (MyProject.DomainModel.DomainModelCategory.Category cat in ViewData.Model) %>
<%{ %>
<option value="<%=cat.Id %>"><%=cat.CategoryName %></option>
<%} %>
</select>
<input type="submit" value="search" />
<%Html.EndForm(); %>
</asp:Content>
我遇到的麻烦(实际上只是一个烦恼)是在OPTION线上... cat.Id没有启用intellisense但cat.CategoryName确实...
我知道它仍然是Beta,但我想知道是否有人知道这个状态......
谢谢!
答案 0 :(得分:8)
不幸的是,Intellisense在HTML属性中不起作用。我不知道为什么,它只是没有。
当我真的需要Intellisense作为属性值时,我首先在属性外部编写服务器端代码,然后将其剪切粘贴。例如,我写这个:
<%=cat.Id %>
<option value=""><%=cat.CategoryName %></option>
然后剪切粘贴使其看起来像这样
<option value="<%=cat.Id %>"><%=cat.CategoryName %></option>
这是一种解决方法,但它确实有效。
这通常是ASP.Net设计器的一个问题,因此它不会与MVC隔离(它也出现在WebForms中)。现在更多人使用“&lt;%=%&gt;”这个问题更加突出了用于构建HTML的标签(感谢MVC)。