0

我正在尝试做我认为简单的操作/请求。

我在视图中有一个 html 输入文本,并且使用 Ajax 我调用控制器以返回带有来自文本输入的 where 子句的 SQL 查询结果的部分视图,目标是检索包含信息的表。

下面你有代码:

从视图调用控制器的 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>
            <p>No results</p>
        </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)
4

1 回答 1

-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");
            }
        });
   });
于 2018-06-21T15:36:01.390 回答