>source

간단한 조작/요청이라고 생각되는 것을 하려고 합니다.

뷰에 html 입력 텍스트가 있고 Ajax를 사용하여 컨트롤러를 호출하여 텍스트 입력에서 가져온 where 절이 있는 SQL 쿼리 결과로 부분 뷰를 반환합니다. 목표는 다음을 사용하여 테이블을 검색하는 것입니다. 정보.

아래에 code가 있습니다.

컨트롤러를 호출하기 위한 뷰의 AJAX 요청:

$(function()
{
    $.ajax
    ({
        type: "POST",
        url: '@Url.Action("result","result")',
        data: { Code: result},
        success: function(data) {},
        error: function(){
            alert("error");
        }
    });
});

모델 정보를 받았지만 뷰에 로드할 때 변경되지 않는 부분 뷰, 결과가 없습니다.

@model xpto.Models.result
@if (Model != null)
{
    <h1>Title</h1>    <table>        <tr>            <td>                @Model.Code
            </td>            <td>            </td>        </tr>    </table>}
else
{
<table>    <tr>        <td>            

No results

</td> </tr></table>}

컨트롤러:

HttpPost부분 보기를 반환하려면

[HttpPost]
public ActionResult TableStocks(TableStocks model)
        {
            if (ModelState.IsValid)
            {
                SqlConnection conn= new SqlConnection(ConnStr);
                SqlCommand selectX= new SqlCommand("sqlquery @param"), conn);
                SqlDataReader reader;
                selectX.Parameters.AddWithValue("@param", model.code);
                connection.Open();
                reader= selectX.ExecuteReader();
                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                       model.Code= Int32.Parse(reader["code"].ToString());
                    }
                }
                else
                {
                    Console.Write("ERROR");
                }
            }
            return PartialView("result", model);
        }

컨트롤러가 입력 텍스트에서 값을 수신하고 데이터베이스에서 정보로 모델을 검색한 후에도 뷰는 결과 없이 유지됩니다.

@Html.Partial("result", Model)

Ajax 성공 콜백 함수에서 DOM에 부분 보기를 추가해야 합니다.

Ryan Wilson2021-11-06 23:15:10

죄송합니다만 예를 들어 주시겠습니까? 다음과 같은 것을 언급하고 있습니까? success: function (data) { $("#tableResult").html(data); } 그렇다면 여전히 동일한 결과가 나타납니다. 참고: 동일한 id="tableResult" 부분적으로 테이블에 있습니다. 감사합니다. btw

RPDF2021-11-06 23:15:10

동일한 ID를 가진 Html 요소가 있어서는 안 됩니다. ID는 고유해야 합니다. 또한 부분 보기가 테이블 행만 반환합니까? 그렇다면 위의 예는 어떻게 해야 하는지, 그렇지 않으면 본문이나 div 요소에 추가해야 합니다.

Ryan Wilson2021-11-06 23:15:10

감사합니다 Ryan, 알겠습니다. Id를 언급할 때 명확하지 않았지만 div 요소로 보내야 한다는 것을 이해하는 데 도움이 되었습니다.

RPDF2021-11-06 23:15:10

또한 ID가 "tableResult"인 HTML 테이블이 표시되지 않습니까? "tableResult"가 Ajax 호출에서 반환되는 테이블의 ID인 경우 추가할 초기 페이지 로드 시 DOM 요소가 있어야 하므로 $('body').append() 또는 일부 초기 추가할 div 요소 like 다음 do $('#dynamicTableDiv').append(data);

Ryan Wilson2021-11-06 23:15:10
  • 답변 # 1

    부분 보기가 모델을 올바르게 가져오는지 확인했다고 가정합니다. 그렇다면 남은 것은 AJAX 호출을 수정하여 페이지의 부분을 다음과 같이 바꾸는 것입니다.

      $(function()
        {
            $.ajax
            ({
                type: "POST",
                url: '@Url.Action("result","result")',
                data: { Code: result},
                success: function(data) {
                    $('#myDiv').html(data); //Add this line to set the data into the page
                },
                error: function(){
                    alert("error");
                }
            });
       });
    

    예, 브라우저 디버그 도구에서 데이터를 확인할 때 요청에서 응답은 200이고 미리 보기에는 부분 보기에 있을 것으로 예상되는 테이블이 있습니다. 그러나 부분 보기나 페이지의 code를 검사할 때 표시되지 않습니다. 나는 이미 이 성공을 시도했다: function (data) { $("#tableResult").html(data); }, 동일한 결과

    RPDF2021-11-06 23:15:10

    Rui Paulino -console.log(data); 결과는 무엇입니까? 모든 데이터가 제자리에 있는 HTML이 보입니까?

    Andrew Taylor2021-11-06 23:29:34
  • 이전 automation : AHK: 창/파일 탐색기에서 선택한 후 FileSelectFile 함수를 사용하여 스크립트를 실행하기 위해 선택한 파일을 변수에 저장하는 방법은 무엇입니까?
  • 다음 Java 음악 파일이 "(해당 파일 또는 디렉터리 없음)"을 반환하지만 경로가 올바른 것 같습니다.