0

我对 C# 和 asp.net 还很陌生,在显示表单中提交的内容时遇到了麻烦。表单元素是一个标签。下拉信息从数据库中提取并正确显示。提交表单后,它只是让它发布到另一个页面,这就是我遇到问题的地方。任何帮助,将不胜感激。

联系方式.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>

联系.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();

默认.aspx.cs:

FormSuccessBID.InnerHtml = "Business Entity ID: " +  Request.Form["topEmails"] + "";

任何想法为什么这不起作用?

更新:

联系方式.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>
4

1 回答 1

0

您在表单定义中缺少“runat='server'”。

在 ASP.NET 中,您还可以每页一个表单。如果您尝试在其中放置多个表单,则不确定您发布的内容,但如果您是,它将无法正常工作。

我认为您需要做的就是在页面上有一个 ASP.NET 按钮,并将 postbackURL 设置为您想要访问的页面。(当然,您需要以服务器端的形式执行此操作)

我认为您将 ASP.NET 方法与其他不同的技术混合在一起。(从外观上看,您可能使用过经典的 ASP 或 PHP?)

如果您出于某种原因不能使用 .NET,则该字段的 ID/名称不会是您所期望的。您需要检查表单帖子并找到它的值 - 类似于“clt00_somethingelse_topEmails”的内容。(同样,如果您使用 .NET 做事方式,这将容易得多,但您可能需要不这样做)

于 2013-10-23T18:19:03.877 回答