0

以下のフォームからデータを投稿しようとすると、System.String[] エラーが発生します。これが私のサンプル コードです。

デフォルト.aspx:

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

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:TextBox id="AccidentDetailsDate" runat="server" />
            <br /><br />
            <asp:Button ID="Button1" Text="Submit" runat="server" />
        </div>
    </form>
</body>
</html>

Default.aspx.cs:

using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    public void Page_Load(object sender, EventArgs e)
    {
        var AccidentDate = Request.Form.GetValues("AccidentDetailsDate");

        Response.Write(AccidentDate);
    }
}

誰かがこのハードルを越えて私を助けることができれば、それは大歓迎です.私はそれを解決するために過去3時間を費やしました.

4

4 に答える 4

1

次の行が原因でエラーが発生しています。

Response.Write(AccidentDate);

あなたAccidentDateは であるためstring[]Response.Writeは単一の文字列値を期待しています。

問題は、前の行が原因で、Request.Form.GetValues文字列の配列を返す を使用していRequest.Formます。 TextBox は既に としてマークされているため、 を使用する必要はありrunat="server"ません。単純に実行できます。

var AccidentDate = AccidentDetailsDate.Text;

したがって、コードは次のようになります。

public void Page_Load(object sender, EventArgs e)
{
    var AccidentDate = AccidentDetailsDate.Text;
    Response.Write(AccidentDate);
}

DateTimeコントロールの名前から、ユーザーから取得しようとしているように見えますDateTime。.Net フレームワークで解析するか、DateTimePicker

于 2013-11-14T13:57:27.817 に答える