我正在尝试在< script>
标记内的 cshtml
中设置 TempData
。以下是我的代码。
$(“#btnGetResult”)。click(function(){
 debugger;
 var JSONString = JSON.stringify($(“#JSONString”)。val());
'@ TempData [“JSON”]'= $(“#JSONString”)。val();



 我得到的错误是


 分配中的左侧无效



 我在设置 TempData [“JSON”]
时遇到了什么错误,因为我必须在我的控制器中使用这个tempdata。
这是我的代码,其中 put
是一个div,我正在尝试加载局部视图。当我通过JSONSTRING时,我得到了js中的整个JSONSTRING,但只有 [{
传递给控制器。其余的都被滑落。
_OutPut是局部视图&# xA;
 $(“#put”)。load('@ Url.Action(“_ OutPut”,“API”)'+
'?UD ='+ $(“#UD”)。 val()+
'& JSONString ='+ JSONString
);



答案 0 :(得分:0)
我的猜测是,您可以将处理_Output部分的操作方法更改为HTTP Post而不是GET,以避免JSON过长或发布非法字符(IIS默认最大值为4096)。如果它没有发布完整的JSON,那么你需要查看"#JSONString"的值。元素,看它是否有好的数据。
控制器:
[HttpPost]
public ActionResult GetOutputPartial(string UD, string JSONString)
{
// youll need to deserialize JSONString here most likely
// return PartialView just like you were doing before
}
Javascript in view:
$.ajax({
url: "@Url.Action("GetOutputPartial", "CONTROLLERNAME")",
data: { ud: $("#UD").val(), JSONString: $("#JSONString").val() },
cache: false,
type: "POST",
dataType: "html",
success: function (data, textStatus, XMLHttpRequest) {
$("#put").html(data);
}
});
或者你可以使用jquery的加载,如果你喜欢POST,如果你给它一个对象:
$("#put").load('@Url.Action("GetOutputPartial", "CONTROLLERNAME")', { ud: $("#UD").val(), JSONString: $("#JSONString").val() });