C# PartialView显示未更新的模型

C# PartialView显示未更新的模型,c#,asp.net-mvc-4,asp.net-ajax,asp.net-mvc-partialview,C#,Asp.net Mvc 4,Asp.net Ajax,Asp.net Mvc Partialview,我对使用ASP.NET MVC3(Razor)和Ajax的PartialView有问题。 这就是我的情况: 我有一个简单的测试视图模型: public class MyModel { public string MyText { get; set; } public int MyNumber { get; set; } } 我的目标是有一个表格。根据发布的数据,我想显示不同的局部视图。 我已经创建了主窗体(索引视图): 我的问题是,当执行Cat或Dog操作时,模型中的MyTex

我对使用ASP.NET MVC3(Razor)和Ajax的PartialView有问题。 这就是我的情况:
我有一个简单的测试视图模型:

public class MyModel
{
    public string MyText { get; set; }
    public int MyNumber { get; set; }
}
我的目标是有一个表格。根据发布的数据,我想显示不同的局部视图。 我已经创建了主窗体(索引视图):

我的问题是,当执行Cat或Dog操作时,模型中的MyText会发生更改,但当显示正确的局部视图时,我会看到旧的(未更新的)MyText。为什么?
欢迎根据表单中发布的数据显示特定局部视图的任何其他想法。

我刷新局部视图的方式略有不同。我会在单击按钮时使用ajax调用,而不是发回并传递希望返回的部分视图

$('.btnSubmit').on('click', function(){
    $.ajax({
        url: "@(Url.Action("Action", "Controller"))",
        type: "POST",
        cache: false,
        async: true,
        data: { type: 'cat/dog' },
        success: function(result){
            $('.Content').html(result);
        }
    });
});

希望这对你有用

我使用它作为jQueryAjax的方式和你们一样,但问题是存在的。这是关于添加或删除的项目的更新,但不适用于仅在内容中更改的项目。我不知道为什么。这让我很困惑(你可以看到我的问题
<span>cat view</span>
@Html.TextBoxFor(m=> m.MyText)
@Html.TextBoxFor(m=> m.MyNumber)
<span>@DateTime.Now.Second</span>
<span>dog view</span>
@Html.TextBoxFor(m=> m.MyText)
@Html.TextBoxFor(m=> m.MyNumber)
<span>@DateTime.Now.Second</span>
[HttpGet]
public ActionResult Index()
{
    MyModel model = new MyModel();
    return View(model);
}


[HttpPost]
public PartialViewResult Index(MyModel model)
{
    if (model.MyNumber == 1)
    {
        return Cat(model);
    }
    else
    {
        return Dog(model);
    }
}

[HttpPost]
public PartialViewResult Cat(MyModel model)
{
    model.MyText = model.MyText + " K";
    return PartialView("Cat", model);
}

[HttpPost]
public PartialViewResult Dog(MyModel model)
{
    model.MyText = model.MyText + " P";
    return PartialView("Dog", model);
}
$('.btnSubmit').on('click', function(){
    $.ajax({
        url: "@(Url.Action("Action", "Controller"))",
        type: "POST",
        cache: false,
        async: true,
        data: { type: 'cat/dog' },
        success: function(result){
            $('.Content').html(result);
        }
    });
});