0

次のコードがあります。

protected void btnSave_Click(object sender, EventArgs e)
{
    StarBusModel.BookingDetail1 objBooking = new StarBusModel.BookingDetail1();
    objBooking.TourID = tourID;
    objBooking.Name = txtName.Text;
    objBooking.Phone = txtPhone.Text;
    objBooking.Amount = Convert.ToDecimal(Request.Form[txtAmount.ClientID]);


    string []  seats = Request.Form[txtSeatNo.ClientID].Split(new char[] {','});
    for (int i = 0; i < seats.Length; i++)
            objBooking.SeatDetails.Add(new StarBusModel.SeatDetail1() {SeatID = Convert.ToInt32(seats[i])});
    objEntities.BookingDetail1.AddObject(objBooking);        
    objEntities.SaveChanges();
    BindSeats();
}

エラーが発生します

System.NullReferenceException: Object reference not set to an instance of an object.

次のコードで:

string []  seats = Request.Form[txtSeatNo.ClientID].Split(new char[] {','});

どこが間違っているか教えてください。さまざまな回答を検索しましたが、どこが間違っているのか特定できません。

4

2 に答える 2

2

Request.Form[txtSeatNo.ClientID]明らかにヌルです。一般に、指定されたキーが定義されていない場合、NameValueCollection(like ) は null 文字列を返します。Request.Form

チェックを行う必要があります:

string seatString = Request.Form[txtSeatNo.ClientID];
string [] seats = String.IsNullOrEmpty(seatString) ? new char[]{} :
     seatString.Split(new char[] {','});
于 2012-05-23T02:35:09.177 に答える