Asp.net mvc 使用ASP.Net MVC发布后视图未更新

Asp.net mvc 使用ASP.Net MVC发布后视图未更新,asp.net-mvc,asp.net-mvc-4,razor,post-redirect-get,Asp.net Mvc,Asp.net Mvc 4,Razor,Post Redirect Get,我正试图构建一个非常简单的网站,以显示使用asp.net mvc(带razor)添加和更新的一些测试数据,但每当数据发布到我的Post方法时,我的数据都不会被更新。我正在尝试在帖子触发后立即更新无序列表(目前) 我使用以下代码将数据发布为JSON: string jsonDeviceData = SerializeHelper.Serialize<IDeviceData>(deviceData, ContentTypeEnum.Jso

我正试图构建一个非常简单的网站,以显示使用asp.net mvc(带razor)添加和更新的一些测试数据,但每当数据发布到我的
Post
方法时,我的数据都不会被更新。我正在尝试在帖子触发后立即更新无序列表(目前)

我使用以下代码将数据发布为
JSON

string jsonDeviceData = SerializeHelper.Serialize<IDeviceData>(deviceData, 
                        ContentTypeEnum.Json, false);

HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(localServerUrl);
webRequest.Method = "POST";
webRequest.ContentType = "application/json"; //"application/x-www-form-urlencoded";

byte[] deviceDataBuffer = Encoding.UTF8.GetBytes(jsonDeviceData);

Task<Stream> requestTask = webRequest.GetRequestStreamAsync();
using (Stream requestStream = requestTask.Result)
{
    requestStream.Write(deviceDataBuffer, 0, deviceDataBuffer.Length);
}

Task<WebResponse> responseTask = webRequest.GetResponseAsync();
using (StreamReader requestReader = new StreamReader(responseTask.Result
           .GetResponseStream()))
{
    string webResponse = requestReader.ReadToEnd();
    Debug.WriteLine("Web Response: " + webResponse);
}
这是我在.cshtml页面中的代码:

<ul>
    @if (Model?.DeviceList != null)
    {
        foreach (var device in Model.DeviceList)
        {
            <li>@device.Name</li>
        }
    }
</ul>
    @if(型号?.DeviceList!=null) { foreach(模型中的var设备。DeviceList) {
  • @设备名称
  • } }
  • 如果我选中Fiddler,则数据(在本例中)将正确生成列表
  • 如果我按F5,我的数据显示正确
在这个阶段,我已经读了很多文章,但仍然没有找到解决方案,其中一篇是,当我尝试
ModelState.Clear()时@device.Name
,这是建议之一。我不确定最后一个

我读过的另一篇文章也没用

我显然错过了什么

我看到的大多数文章/示例都是指通过
表单发布的,我知道我正在发布,但这与通过
表单发布的内容相同吗

此外,我的页面的viewModel用于我的页面,它包含设备列表。这是否可以,而不是将设备列表作为viewmodel传递给页面?我这样做的原因是我想在以后的阶段访问其他列表

有人有什么建议吗

非常感谢

public ActionResult Index()
{
    ViewBag.Title = "Test Server";

    var deviceViewModelList = HttpContext.Application["DeviceList"] 
        as List<DeviceViewModel> ?? new List<DeviceViewModel>();

    var homePageViewModel = new HomePageViewModel
    {
        DeviceList = deviceViewModelList
    };

    return View(homePageViewModel);
}
<ul>
    @if (Model?.DeviceList != null)
    {
        foreach (var device in Model.DeviceList)
        {
            <li>@device.Name</li>
        }
    }
</ul>