2016-06-21 7 views
-2

Ich möchte Wert an ActionResult weitergeben, aber Querystring und Session nicht verwenden, da value type guid ist, also nicht in URL angezeigt werden soll.Wie Wert in Tempdata mit Jquery zuweisen?

+4

Sie können nicht (auf der Client-Seite). 'TempData' ist ein serverseitiger Wert und Javascript ist clientseitig. Sie müssten Ajax verwenden, um den Wert an eine Controller-Methode zu senden und den Wert festzulegen, aber das würde keinen Sinn ergeben. Was versuchst du zu erreichen? –

+1

Gibt es einen bestimmten Grund, warum Sie Guid in der Abfragezeichenfolge nicht anzeigen möchten? – JamieD77

+2

Zuerst ist 'TempData' * * die Sitzung. Das ist gleich. Wenn Sie die Sitzung nicht verwenden möchten (was Sie nicht sollten), sollten Sie auch nicht 'TempData' dafür verwenden. Zweitens, wenn Sie die GUID nicht anzeigen möchten, wählen Sie eine andere eindeutige ID in der Bestellung und verwenden Sie diese stattdessen. Das ist aber deine einzige Wahl. Eine bestimmte Reihenfolge ist eine eindeutige Ressource, und Sie benötigen eine ID * irgendwo * in der URL, um diese eindeutige Ressource zu identifizieren. –

Antwort

1

Grundsätzlich können Sie nicht auf diese Weise versuchen, serverseitige Objekte den clientseitigen Daten zuzuordnen.

Allerdings können Sie tun, dass Ajax verwenden, wenn Sie schreiben eine Ajax-Aktion, die die Daten an den TempData zuweisen und diese Aktion von der Client-Seite aufrufen, indem Ajax

0

Ajax-Code:

function ViewDetail(ele) { 
    var Id = $(ele).attr("OrderID"); 
    $.ajax({ 
        type: "POST", 
        cache: false, 
        async: false, 
        url: '@Url.Action("actionname", "controllername")', 
        dataType: "json", 
        data: { Id: Id }, 
        failure: function (jqXHR, exception) { 
         if (jqXHR.status === 0) { 
          alert('Not connect.\n Verify Network.'); 
         } else if (jqXHR.status == 404) { 
          alert('Requested page not found. [404]'); 
         } else if (jqXHR.status == 500) { 
          alert('Internal Server Error [500].'); 
         } else if (exception === 'parsererror') { 
          alert('Requested JSON parse failed.'); 
         } else if (exception === 'timeout') { 
          alert('Time out error.'); 
         } else if (exception === 'abort') { 
          alert('Ajax request aborted.'); 
         } else { 
          alert('Uncaught Error.\n' + jqXHR.responseText); 
         } 
        } 
       }); 
} 

Hoffnung es hilft!