必须将带有'ImageButton'类型的控件放在带有runat = server的表单标记内。我以为MVC没用过这个?

时间:2010-07-02 16:58:22

标签: .net asp.net-mvc-2

我认为使用ASP.Net MVC2的一个好处是可以为网页制作更清晰,更符合逻辑的标记。

我正在创建母版页的设计,当我尝试运行它时,我收到此错误:

Control 'ctl00_ImageButton1' of type 'ImageButton' must be placed inside a form tag with runat=server.

以下是代码:

<body>    
    <div id="headerarea">
        <asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/Content/logo.png" PostBackUrl="~/Views/Home/Index.aspx" />
        <p><span class="salute"><strong>Hola.</strong></span> Inicie sesion para poder crear tus propios anuncios gratis! Eres nuevo? Empieza aqui.</p>
        <div id="topmenu">
            <img src="../../Content/categorybutton.png" alt="Nuestras categorias" />
            <p>Buscar en</p>            
        </div>
    </div>
</body>

我该怎么做才能解决这个错误?有什么提示吗?

1 个答案:

答案 0 :(得分:2)

ASP.Net MVC不使用任何 runat="server"控件(主页的asp:ContentPlaceHodler除外)。

您应该使用原始HTML:

<input type="image" src="<%=Url.Content("~/Content/logo.png")" />

请注意,HTML <input>代码必须位于<form>内。

另请注意,~/Views/Home/Index.aspx不是客户端的有效路径。

您可能需要一个简单的超链接:

<a href="/">
    <img src=<%=Url.Content("~/Content/logo.png")" alt="Our Logo" />
</a>