是否可以编写一个html表单并包含一个aspx文件?

时间:2015-08-10 21:52:52

标签: html asp.net

我正在尝试从html页面抽象登录表单。是否可以将表单的内容放在一个文件中,并将内容包含在html页面中。我在asp.net中这样做,我宁愿把表单的内容放在.aspx或.ascx文件中。

目前我能想到的唯一方法就是使用一些我宁愿远离的javascript hack。

<form id="login">
    <div class="form-group">
        <label for="username">Username</label>
        <input type="text" class="form-control" id="username" placeholder="Username">
    </div>
    <div class="form-group">
        <label for="password">Password</label>
        <input type="password" class="form-control" id="password" placeholder="Password">
    </div>
    <button type="submit" class="btn btn-default btn-block">Sign In</button>
    <small><a href="login/password.aspx">Forgot your password?</a></small>
</form>

所以我想拿标签和输入并将它们放在另一个文件中。是否可以使用我的.aspx文件将它们包含在此表单中?

1 个答案:

答案 0 :(得分:1)

我认为您正在使用网络表单?因为ASP.Net MVC可以让你做任何你想要的HTML。

在这种情况下,请记住Web窗体有一种特殊形式,通常如下所示:

<html>
<body>
<form id="theForm" runat="server">
<!-- everything goes in here -->
</form>
</body>
</html>

诀窍是Web窗体有关于此表单的两个规则:它应该是具有runat="server"属性的 only 表单,如果你嵌套它不会喜欢它另一个表单元素 inside 特殊表单。但是,您可以完全自由地在页面上包含另一个表单元素,该表单元素位于此表单元素的 之外,并且使用runat="server"属性:

<html>
<body>
<form id="login" action="...">
   <!-- login stuff goes here -->
</form>
<form id="theForm" runat="server">
   <!-- everything else goes in here -->
</form>
</body>
</html>

当然,你可以使用css样式在css的限制内在页面上定位你想要的新表单。

除此之外,您还在谈论将此代码移动到另一个文件。具体来说,听起来你想要使用较旧的include指令。那些并不是真正被认为是好的做法,但你确实有很多选择。在Web窗体中,这可能是您Master page的一部分。在MVC中,它可能类似于Partial View (scroll down at the link)。此外,使用Web窗体,您可以将其实现为用户控件,您不再需要form元素。相反,您依赖ASP.Net页面中的表单,只提供登录按钮的服务器控件和代码。