我在Visual Studio 2013中创建了一个C#Web表单项目.当我运行sample.aspx页面时,页面会自动使用/sample友好的URL路由.
我想手动处理路由,而不是让.NET自动完成.如何禁用友好的URL功能.我不希望它通过NuGet卸载,但只在代码中禁用.
为什么以下结果都是真正的if子句,即使文本框是空的,甚至没有触及回发?:
<form action="Default.aspx" runat="server" method="post" id="newform">
<input type="text" id="name" runat="server"/>
</form>
<%
if (Request.Form["name"] != null) // Prints out "Name OK" on postback.
{
Response.Write("<br/>");
Response.Write("Name OK");
}
%>
Run Code Online (Sandbox Code Playgroud)
文本框实际上是否在回发中包含空字符串("")?
为什么以下结果导致第一页上的true if子句加载而不是回发?:
<form action="Default.aspx" runat="server" method="post" id="newform">
<input type="text" id="name" runat="server"/>
</form>
<%
if (Request.Form["name"] != "") // Prints out "Name OK" on first page load, but not on postback.
{
Response.Write("<br/>");
Response.Write("Name OK");
}
%>
Run Code Online (Sandbox Code Playgroud)
为了获得成功和预期的结果,我必须使用以下内容:
<form action="Default.aspx" runat="server" method="post" id="newform">
<input type="text" id="name" runat="server"/>
</form>
<%
if (Request.Form["name"] …Run Code Online (Sandbox Code Playgroud) 我正在将数据发送到 asp.net c# 中的支付网关。除了金额和其他参数之外,它还要求发送一个 url,以便接收支付网关以 post 方法发送的响应。因此,我发送一个 .aspx 页面作为返回 url,付款过程完成后,它会重定向到此页面,但Request.Form.Count页面加载时始终为 0,因此我无法获得发布的值。
我尝试使用简单的 php 页面来回显所有帖子变量,然后它工作正常并显示我想在 aspx 页面中捕获的所有帖子数据。当我检查浏览器时,我可以看到页面加载事件的 Request.Method 为 Get 而不是 POST。
我不能通过提供 url 来使用 aspx 页面来捕获从支付网关发布的数据来实现此目的吗?
protected void Page_Load(object sender, EventArgs e)
{
lblAllFormItems.Text = "";
lblAllFormKeys.Text = "";
//Request.Form.Count = 0 , Not going inside loop
foreach (string key in Request.Form)
{
string value = Request.Form.Get(key);
if (value != String.Empty)
{
lblAllFormKeys.Text += "<br><b>" + key + "</b>";
lblAllFormItems.Text += "<br>" + value;
}
}
}
Run Code Online (Sandbox Code Playgroud)