2 개의 문자열이 필요한 작업이 있습니다. 문자열 중 하나는 크고 추한 json 문자열입니다. 400 개의 잘못된 요청을 계속해서 남기므로이 동작을 통해 특수 문자가 전달되는 것을 허용하지 않을 것으로 생각됩니다.ASP.net MVC - 동작이 JSON 문자열 400 불량 요청을 좋아하지 않습니다.
작업에 직렬화 된 json 개체를 전달할 수 있습니까?
public ActionResult SaveState(string file, string state)
{
string filePath = GetDpFilePath(file);
HtmlDocument htmlDocument = new HtmlDocument();
htmlDocument.Load(filePath);
HtmlNode stateScriptNode =
htmlDocument.DocumentNode.SelectSingleNode("/html/head/script[@id ='applicationState']");
stateScriptNode.InnerHtml = "var applicationStateJSON =" + state;
htmlDocument.Save(filePath);
return null;
}
ClientScript
'e' is a large json string
$.post('/State/SaveState/' + fileName+'/' + '/' + e + '/');
강력한 텍스트
지금 UriEncoding를 사용하여 텍스트()를 인코딩하고 있지만 차이가 없습니다. 나는 MVC 액션이 기본적으로 이러한 특수 문자를 보낼 수 있다고 생각하지 않는다. 사실인가? 이 문제를 어떻게 해결합니까?
$ .post ('/ 상태/저장 상태 /'+ encodeURIComponent (파일 이름) + '/'+ '/'+ encodeURIComponent (e) + '/');
샘플 요청 :
요청 URL : HTTP : // 로컬 호스트 : 51825/주/SaveState/aa6282.html // % 7B % 22uid % 22 % 3A의 %의 22testUser %의 22 % 2C %의 22A
이것은 차이가없는 것처럼 보입니다. 변경 사항을 반영하여 질문을 업데이트했습니다. – Nick
죄송합니다 ... 여분의 슬래시 ... 나는 그들을 제거했습니다. –