Как присвоить значение в Tempdata с помощью Jquery?

Я хочу передать значение в ActionResult, но не хочу использовать Querystring и сеанс, потому что тип значения guid, поэтому не хочу отображать в URL.

function ViewDetail(ele) {
    var Id = $(ele).attr("OrderID");
    @TempData["OrderID"] = Id;    
}

2 ответа

По сути, вы не можете таким образом, вы пытаетесь назначить объект на стороне сервера для данных на стороне клиента.

Однако вы можете сделать это с помощью Ajax, если напишите Ajax-действие, которое назначит данные для tempdata и вызовет это действие со стороны клиента с помощью Ajax.

Код Ajax:

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);
                        }
                    }
                });  
}

Надеюсь, поможет!

Другие вопросы по тегам