Asp.net mvc 使用ASP.Net MVC发布后视图未更新
我正试图构建一个非常简单的网站,以显示使用asp.net mvc(带razor)添加和更新的一些测试数据,但每当数据发布到我的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
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>