Javascript $.post不会刷新视图MVC Asp.net

Javascript $.post不会刷新视图MVC Asp.net,javascript,asp.net-mvc,Javascript,Asp.net Mvc,视图有两个div。一个div显示文本框。另一个基于Model.Flag值显示文本。在$post上,当我调试时,我获得了第二个div文本所需的内部和外部html。但是返回的视图只有文本框值,而没有其他div值。既然变量jq有正确的数据,有人能说我是否必须用document.write之类的东西重写$.post成功时的HTML吗?意见是: <% using (Html.BeginForm()) { %> <div> The test message is <%=

视图有两个div。一个div显示文本框。另一个基于Model.Flag值显示文本。在$post上,当我调试时,我获得了第二个div文本所需的内部和外部html。但是返回的视图只有文本框值,而没有其他div值。既然变量jq有正确的数据,有人能说我是否必须用document.write之类的东西重写$.post成功时的HTML吗?意见是:

<% using (Html.BeginForm())
{
%>
<div>
    The test message is <%= @Html.TextBox("Testname",Model.Testname)  %>
</div>
<%
if (Model.Flag)
    { %>
    <div>
        Print this as true
        </div>         
<%} %>
    <input type ="button" value ="ClickChange" id="btnChange" /> 
<% } %>

$(function() 
{
    $("#btnChange").click(function() 
    {
        alert("clicked");
        $.post("/Display/DisplayAgain/", { Testname: $("#Testname").val() },
        function(data) 
        {
            alert("success");
            var jq = jQuery(data);
        });
    });

});
我知道$,post会刷新整个视图,但这不会发生。我的理解是错误的。当我调试视图时,我得到Model.Flag为true,当我通过调试javascript向变量jq添加watch时,我得到内部HTML和外部HTML以及所需的HTML,即用户输入的文本框及其值,HTML将其打印为true,但在浏览器上,我只看到带有其值的texbox,而没有看到另一个带有文本的div将此打印为true。
我做错什么了吗。我不能使用$.post检查模型值和显示文本吗?只需在服务器端刷新视图即可。请提供帮助。

如果变量$jq中有要显示的内容,则需要更新所需div的内容

向div添加一个Id,以便您可以轻松地引用它

<div id="Message">
     The test message is <%= @Html.TextBox("Testname",Model.Testname)  %>
</div>
或仅使用您希望替换的页面部分,如省略等


如果要从Asp.Net Mvc控制器返回Json,请参见添加DisplayViewModel codeYes used Json。非常感谢您澄清了$.post的概念。任何AJAX方法都不会自动更新页面,这是有道理的,最简单的方法是使用JSONMy愉悦,很高兴我能提供帮助。顺便说一句,如果您使用的是Json,jQuery可以在使用
<div id="Message">
     The test message is <%= @Html.TextBox("Testname",Model.Testname)  %>
</div>
//if the content is html then
$("#Message").html($jq);

//if the content is text (special characters like <> will be escaped automatically)
$("#Message").text($jq);
<div>
    The test message is <span id="Message">
        <%= @Html.TextBox("Testname",Model.Testname) %>
    </span>
</div>
{
    "TestMessage": "Some test message",
    "AnotherMessage": "Here I am"
}
An <span style="font-weight:bold;">Html</span> message to be injected into the page