ASP.net代码落后于C#

时间:2012-02-02 18:21:52

标签: c# asp.net

我的每个页面都有一个简单的页面:

Default.aspx的

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<html>
<body>

<form method="POST" action="Default.aspx">

Enter Number: <input type="text" name="cNum" value="7707744436276244" /><br />
<input type="submit" value="Submit" />
</form>


</body>
</html>

和Default.aspx.cs背后的代码

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    public string ServerSideVariable;


    protected void Page_Load(object sender, EventArgs e)
    {
       string n = String.Format("{0}", Request.Form['cNum']); ERROR Here<--- too many character in character literall....

        string pval = "Passed value";
        ServerSideVariable = pval;

    }
}

为什么会发生错误?

此外,我计划在代码后面实现与DB建立连接并将响应返回给ASP.net,任何人都知道这是如何完成的?

5 个答案:

答案 0 :(得分:4)

' '标记内不能有多个字符。您的代码应为:

string n = String.Format("{0}", Request.Form["cNum"]); // Double quotes here

关于你的第二个问题,这是一个非常广泛的问题,涉及很多数据库主题/可能性。你应该缩小你的问题范围,询问具体的问题。

答案 1 :(得分:4)

在C#中,'保留用于字符文字。 "保留用于字符串文字。

char char1 = 'Z';        // Character literal
string string1 = "ZZZ";  // String literal

C#参考文献:

尝试以下方法:

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    public string ServerSideVariable;


    protected void Page_Load(object sender, EventArgs e)
    {
       string n = String.Format("{0}", Request.Form["cNum"]); //ERROR Here<--- too many character in character literall....

        string pval = "Passed value";
        ServerSideVariable = pval;

    }
}

至于你的第二个问题,请阅读http://www.oracle.com/technetwork/issue-archive/2011/11-sep/o51odt-453447.html

答案 2 :(得分:3)

使用双引号。单引号用于一个字符。

Request.Form["cNum"]

答案 3 :(得分:2)

更改

string n = String.Format("{0}", Request.Form['cNum']); 

string n = String.Format("{0}", Request.Form["cNum"]); 

您需要双引号(" ")来表示字符串文字。

答案 4 :(得分:0)

我认为发生错误是因为Request.From有很多参数。

要获得Post参数,更好的方法是:

NameValueCollection nameValueCollection = Request.Form;

string cnum = nameValueCollection["cNum"];

虽然我没有测试过,但我认为这样做会很好。