我对C#和asp.net相当新,并且无法显示表单中提交的内容。表单元素是标记。下拉信息从数据库中提取并正确显示。它只是在提交表单后将其发布到另一页面是我遇到问题的地方。任何帮助将不胜感激。
Contact.aspx:
<form action="Default.aspx" method="post" data-transition="pop">
<div data-role="fieldcontain">
<label for="topEmails">Business Entity ID:</label>
<select name="topEmails" id="topEmails" data-native-menu="false"
runat="server">
</select>
</div>
<input type="submit" data-iconpos="right" data-inline="true"
data-icon="plus" name="sendMessage" id="sendMessage" value="Send Info">
</form>
Contact.aspx.cs:
AdventureWorks2012DataContext db = new AdventureWorks2012DataContext();
var emails = (from b in db.EmailAddresses
select new { b.EmailAddressID, b.BusinessEntityID }).Take(20);
topEmails.DataTextField = "BusinessEntityID";
topEmails.DataValueField = "BusinessEntityID";
topEmails.DataSource = emails;
topEmails.DataBind();
Default.aspx.cs:
FormSuccessBID.InnerHtml = "Business Entity ID: " + Request.Form["topEmails"] + "";
为什么这不起作用的任何想法?
更新
Contact.aspx:
<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
<h2 style="text-align: center;">Contact Kyle</h2>
<form action="Default.aspx" method="post" data-transition="pop">
<div data-role="fieldcontain">
<label for="userFName">First Name:</label>
<input type="text" name="firstName" id="uFName">
</div>
<div data-role="fieldcontain">
<label for="userLName">Last Name :</label>
<input type="text" name="lastName" id="uLName">
</div>
<div data-role="fieldcontain">
<label for="productsCategories">Products:</label>
<select name="productCategories" id="productCategories" data-native-menu="false" runat="server"></select>
</div>
<div data-role="fieldcontain">
<label for="topEmails">Business Entity ID:</label>
<select name="topEmails" id="topEmails" data-native-menu="false" runat="server"></select>
</div>
<input type="submit" data-iconpos="right" data-inline="true" data-icon="plus" name="sendMessage" id="sendMessage" value="Send Info">
</form>
</asp:Content>
答案 0 :(得分:0)
您在表单定义中缺少“runat ='server'”。
在ASP.NET中,每页还允许一个表单。如果你试图在那里放置多个表格,不确定你发布的是什么,但是如果你这样,它就不会起作用。
我认为你需要做的就是在页面上有一个ASP.NET按钮,将postbackURL设置为你想要去的页面。 (当然,您需要以服务器端的形式执行此操作)
我认为您正在将ASP.NET方法与其他不同的技术混合使用。 (从它的外观来看,你可能使用过经典的ASP或PHP?)
如果由于某种原因无法使用.NET,则该字段的ID /名称将不会是您所期望的。您需要检查表单帖子并找到它的值 - 类似于“clt00_somethingelse_topEmails”的行。 (同样,如果你使用.NET的做事方式,这将会变得更容易,但你可能不需要这样做)