C# 在ASP.NET页面上动态显示数据
我有一个带有web API端点的ASP.NET应用程序 我想在端点每次接收到显示在主页上的数据时附加这些数据 我怎样才能以最简单的方式实现它。我将感谢任何帮助 编辑: Api控制器:C# 在ASP.NET页面上动态显示数据,c#,asp.net-mvc,asp.net-web-api,C#,Asp.net Mvc,Asp.net Web Api,我有一个带有web API端点的ASP.NET应用程序 我想在端点每次接收到显示在主页上的数据时附加这些数据 我怎样才能以最简单的方式实现它。我将感谢任何帮助 编辑: Api控制器: public class ValuesController : ApiController { public static event EventHandler<string> DataPosted; public IHttpActionResult Get(string value)
public class ValuesController : ApiController
{
public static event EventHandler<string> DataPosted;
public IHttpActionResult Get(string value)
{
DataPosted?.Invoke(this, value);
return Ok();
}
}
public class HomeController : Controller
{
public ActionResult Index()
{
ValuesController.DataPosted += (s_, e_) =>
{
ViewBag.MyData += Environment.NewLine + e_;
};
return View();
}
}
主页视图:
<div class="row">
<div class="col-md-4">
<h2>Output</h2>
<p>@ViewBag.MyData</p>
</div>
</div>
输出
@ViewBag.MyData
当然,这是行不通的。我想我需要找到一种方法来强制负责显示
@ViewBag.MyData
的页面部分刷新。我也尝试了部分观点,但没有任何运气。我认为解决这个问题的方法是不正确的
您的浏览器正在向您的web应用发出查看主页的请求。
该web应用程序将为浏览器提供主页,内容为ViewBag.MyData
您有一个端点值controller.Get(字符串值),当调用它时,您希望它更新ViewBag.MyData中的值,并不可避免地使用其内容更新主页
问题是:
如果要求将传递到ValuesController.Get(字符串值)中的值保存到应用程序的生命周期之外,那么我强烈建议将该值存储在数据库中的某个位置。存储在静态变量和应用程序变量中的值只有在AppDomain存在的时间内才有效(如果重新启动或关闭web应用程序,这些值可能会丢失,但在数据库中,这些值仍然存在)。我认为解决此问题的方法不正确 您的浏览器正在向您的web应用发出查看主页的请求。 该web应用程序将为浏览器提供主页,内容为ViewBag.MyData 您有一个端点值controller.Get(字符串值),当调用它时,您希望它更新ViewBag.MyData中的值,并不可避免地使用其内容更新主页 问题是:
如果要求将传递到ValuesController.Get(字符串值)中的值保存到应用程序的生命周期之外,那么我强烈建议将该值存储在数据库中的某个位置。存储在静态变量和应用程序变量中的值只有在AppDomain存在的时间内才有效(如果重新启动或关闭web应用程序,这些值可能会丢失,但在数据库中,这些值仍然存在)。您有网格吗?当你说append时,你的意思是刷新页面,还是不刷新页面就显示数据?动态的意思是什么?每次的数据结构都不一样吗?听起来你想要Ajax。请提供一个端点的代码示例。@在ApiController中,我有一个静态事件,每次调用端点时都会触发该事件。事件参数包含来自调用的数据。在主页控制器中,我添加了事件处理程序,我想强制显示数据。这可能不是我要走的路,但这是我想到的第一件事,因为我是一个ASP noob,所以我想不出其他任何事情。到目前为止,我试图通过ViewBag传递数据。@Szybki这样更好,但我的意思是编辑你的问题以包含实际代码。你有网格吗?当你说append时,你的意思是刷新页面,还是不刷新页面就显示数据?动态的意思是什么?每次的数据结构都不一样吗?听起来你想要Ajax。请提供一个端点的代码示例。@在ApiController中,我有一个静态事件,每次调用端点时都会触发该事件。事件参数包含来自调用的数据。在主页控制器中,我添加了事件处理程序,我想强制显示数据。这可能不是我要走的路,但这是我想到的第一件事,因为我是一个ASP noob,所以我想不出其他任何事情。到目前为止,我试图通过ViewBag传递数据。@Szybki这样更好,但我的意思是编辑您的问题以包含实际代码。@Szybki这样做是有意义的,如果不让我知道我是否可以进一步帮助您是的,它会