2013-12-12 4 views
0

У меня возникла проблема с вставкой в ​​базу данных с использованием объекта таблицы, который я создал. Он не принимает никаких значений в объект при использовании `Request.Form [" inputID "]. Все атрибуты моих объектов NULL, но по мере того как я прошел через программу, я нашел следующую информацию Request.Form во время отладки.LINQ to SQL вставить в базу данных из html-формы

  • Request.Form {ctl00% 24MainContent% 24custFullName = Тест + тестер & ctl00% 24MainContent% 24custPhoneNum = 555-555-555 & ctl00% 24MainContent% 24roadService = пусто + газ + бак & ctl00% 24MainContent% 24carYearDB = 2003 & ctl00% 24MainContent% 24carMakeDB = BMW & ctl00% 24MainContent% 24carModelDB = 3 + Серия & submitQuote = Get + Quote} System.Collections.Specialized.NameValueCollection {System.Web.HttpValueCollection}

Все значения учтены, но я не понимаю, почему они не принимаются в базу данных.

Моя форма тег выглядит следующим образом:

<form action="Default.aspx" method="post" data-transition="pop"> 

Мой Default.aspx.cs выглядит следующим образом:

if (Request.Form["custFullName"] != null || Request.Form["custFullName"] != "") 
      { 
       TowingDBDataContext db = new TowingDBDataContext(); 

        tbl_quoteRequest newQuoteRequest = new tbl_quoteRequest(); 
        newQuoteRequest.custName = Request.Form["custFullName"]; 
        newQuoteRequest.custPhone = Request.Form["custPhoneNum"]; 
        newQuoteRequest.custIssue = Request.Form["roadService"]; 
        newQuoteRequest.custYear = Request.Form["carYearDB"]; 
        newQuoteRequest.custMake = Request.Form["carMakeDB"]; 
        newQuoteRequest.custModel = Request.Form["carModelDB"]; 

        db.tbl_quoteRequests.InsertOnSubmit(newQuoteRequest); 
      } 

Любая помощь или направление ценится.

+2

'db.tbl_quoteRequests.SubmitChanges();'? – Cynede

+0

Просто для будущих зрителей он работал с: 'db.SubmitChanges();' –

ответ

0

В дополнение к комментарий Хизер, название вашей формы элементов не custFullName но ctl00$MainContent$custFullName (и т.д., то же самое для всех других значений)

newQuoteRequest.custName = Request.Form["ctl00$MainContent$custFullName"]; 
+0

Работал, как шарм, спасибо, для понимания в будущем, почему он иногда позволяет вам использовать только идентификатор из тега, но в других случаях он делает вы используете 'ctl00 $ MainContent $'? –

+0

Это связано с тем, что вы используете webforms, который решает, какие именно иды и имена использовать (на основе родителей этого элемента, чтобы гарантировать уникальность) и на самом деле не предназначены для использования кодом Request.Form (обычно вы должны использовать модель , экземпляр специального класса, предназначенный для хранения всех данных формы). Кроме того, если этот ответ помог вам, пожалуйста, проверьте его как правильный ответ слева от моего сообщения. –

Смежные вопросы