我正在尝试从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文件将它们包含在此表单中?
答案 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页面中的表单,只提供登录按钮的服务器控件和代码。