Kategorie szkoleń | Egzaminy | Kontakt
  • 1
  • 1
  • 56

Witam.

Mam poważne zmartwienie z mvc c#, nie wszystko idzie zgodnie z planem, dlatego postanowiłem się was doradzić.
Na mojej stronie mam obiekt html <Table> i chcę go wysłać ajax na serwer. Table jest obudowany div id="tarea".
Chcę wysłać go do aplikacji c# mvc i zapisac w bazie danych.
Zadanie wydaje się proste, ale tak nie jest.

1. Polecenie ładnie generuje fragment html w którym jest tabela i zapisuje do zmiennej "da":

var da = document.getElementById('tarea').outerHTML;

To wygląda tak jak string w deguger:

<div id="tarea"><table><tbody><tr id="w1">.

2. Wysyłam teraz obiekt "da" do aplikacji mvc c# używam Ajax.
3. Wybrałem nie wiem czy dobrze contentType: "text/html.

$.ajax({
type: 'POST',
url: '/Home/SaveEntry',
contentType: "text/html; charset=utf-8",
data: { data: da },
dataType: 'html',
success: function (result) {
console.log('sukces');
alert("We returned: " + result);
},
failure: function (e) {
console.log('problemyyyy');
alert(e);
}

});

4. Request dociera do aplikacji mvc, i Ajax realizuje operacje "success".
5. MVC metoda wygląda tak:

[HttpPost]
public string SaveEntry(string data).

6. Do metody dociera "data" pusta - nieprawidłowo jest null.
7. He is my web page: http://ffmama.azurewebsites.net/Home/About

Poproszę o cenną wskazówkę.

Dziękuję i pozdrawiam.

Piotr.

ps.

Udało mi się częściowo wysłać html ale poprzez instrukcję HttpGet, i tu kolejny kłopot przechodzi tylko jedna linia tablicy, dla większej ilości jest to ignorowane.

 

 

PIOTR_DUSIŃSKI
  • Zapytał
  • @ PIOTR_DUSIŃSKI | 30.05.2016
    • 16
    • 0
    • 0

Odpowiedź (1)

  • 6

Da w przykładzie to nie obiekt tyko łańcuch tekstowy (pomijając dywagacje czy łańcuch tekstowy to też obiekt). Kod powinien wyglądać następująco:

var data = {
  html: da};

$.ajax ....
//lub $.post("http://", data, );

Przy okazji, stosowanie GET w tym przypadku nie ma sensu m.in ze względu na ograniczenia ilości danych przesyłanych przez GET.

  • Odpowiedział
  • @ | 01.07.2016
  • TRENER ALTKOM AKADEMII