我在Visual Studio 2017社区的新安装中创建了一个ASP.NET Empty网站。我正在尝试复制以下教程中显示的步骤:https://youtu.be/5dCAXwhjIYU
我只需在表单上种植三个文本框,并提交一个提交按钮。当我双击该按钮时,IDE只会在页面的源视图中突出显示该按钮的HTML。它不会在代码隐藏中创建事件处理程序,如视频中所示并且符合预期。
我手动为后面的代码中的按钮单击创建了事件处理程序。当我尝试运行代码时,它告诉我我引用的字段不存在:
错误CS0103名称'用户名'在当前上下文中不存在
这是我的HTML代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Users.aspx.cs" Inherits="Users" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
UserName<br />
<input id="UserName" type="text" /><br />
UserEmail<br />
<input id="UserEmail" type="text" /><br />
UserCampus<br />
<input id="UserCampus" type="text" /><br />
<input id="SaveUser" type="submit" value="submit" /></div>
</form>
</body>
</html>
C#代码:
public partial class Users : System.Web.UI.Page
{
protected void SaveUser_Click(object sender, EventArgs e)
{
SqlConnection BIGateConnection = new SqlConnection("Data Source=xxxxxxx;Initial Catalog=xxxxxxx;Integrated Security=True");
{
SqlCommand BIGateSQLCmd = new SqlCommand("Insert into [BIGateway].[dbo].[User] (UserName, userEmail, userCampus) VALUES (@userName, @userEmail, @userCampus)", BIGateConnection);
BIGateSQLCmd.Parameters.AddWithValue("@", UserName.Text);
BIGateSQLCmd.Parameters.AddWithValue("@", UserEmail.Text);
BIGateSQLCmd.Parameters.AddWithValue("@", UserCampus.Text);
}
}
}
我到底做错了什么?
答案 0 :(得分:3)
如果你已经使用HTML文本框,那么代码如下:
<input id="UserName" type="text" /><br />
在此,你必须自己添加一行作为runat =&#34; server&#34;
看起来如下:
<input id="UserName" type="text" runat="server"/><br />
然后您可以将它用于服务器端。
希望它有所帮助。
答案 1 :(得分:1)
视频未显示ASPX页面。我相信他使用了 TextBox 和 按钮 服务器控件。
<form id="form1" runat="server">
<div>
UserName<br />
<asp:TextBox runat="server" ID="UserName"/><br />
UserEmail<br />
<asp:TextBox runat="server" ID="UserEmail"/><br />
UserCampus<br />
<asp:TextBox runat="server" ID="UserCampus"/><br />
<asp:Button runat="server" ID="SaveUser" OnClick="SaveUser_Click" Text="Submit"/>
</div>
</form>
如果他将常规html input
与runat="server"
一起使用,则必须在UserName.Value
事件中访问Button1_Click
内的值,而不是var line = turf.lineString(Your polyline coordinates in GeoJson array);
var pt = turf.point([Marker_Lon, Marker_Lat]);
var snapped = turf.pointOnLine(line, pt);
var pstnOnLine = { lat: snapped.geometry.coordinates[1], lng: snapped.geometry.coordinates[0] };
var distToLine = snapped.properties.dist
。
答案 2 :(得分:0)
Afais你没有找到按钮的点击事件。 添加
SaveUser.OnClick += SaveUser_Click;
到page_load事件。
一般来说我更喜欢asp:Button而不是输入。 事实上,它被渲染为输入控件。但有更多的选择。但确实是runat =&#34;服务器&#34;输入缺失。