Html.TextBox 컨트롤을 사용하여 페이지에 검색 상자가 있습니다 (실제로는 부분 뷰 임에도 불구하고 확실하지 않음).ASP.NET MVC - Html.TextBox - 값이 ViewData 사전에 설정되지 않았습니다.
<%= Html.TextBox("query", ViewData["query"], new { style = "width: 90%;" })%>
는 액션 메소드는 매개 변수로 "쿼리를"한다, 나는 전달 된 문자열을 정리하기 위해이 값을 편집 : 그것은 Html.TextBox에 도달 할 때, 그러나
public ActionResult SearchQuery(string query) {
ViewData["query"] = StringFunctions.ProperCasing(query.Replace("_", " "));
을 원래 쿼리 값 (이 경우 밑줄 표시)이 보존됩니다. I은 수정 된 값을 ViewData 필드임을 알 수 있으므로, 예를 들면, :
query == "data_entry"
그리고, 이후는이 도달되면, 동작 방법
ViewData["query"] == "data entry"
하지만 값으로 전달되고 보기, Html.TextBox 여전히 "data_entry"입니다. 액션 메소드 매개 변수 "검색어"와 검색 창 양식 매개 변수 "검색어"사이에 충돌이있는 것 같습니다. 누구든지 여기에서 무슨 일이 일어나고 있는지 또는 가치를 전달할 다른 방법이 있는지 알고 있습니까?
이 동작 방법은 검색 창 데이터를 게시 한 결과와 다른 동작입니다.