Post 在数据模型更改时更新 asp.net 核心 Razor 页面
Post an update to an asp.net core Razor page when the data model changes
我对 asp 和一般的 Web 编程还不熟悉。我正在使用 Visual Studio 2017。我创建了一个 Razor Web 应用程序,它使用我为 Windows 应用程序编写的现有数据模型。首次加载时,我能够在我的网页上显示我的数据模型中的值,但我无法弄清楚如何让页面在我的数据模型中发生更改时显示新值。我习惯于在 WPF 中工作,绑定到 Dependency 属性和 INotifyPropertyChanged 属性。这是我用于 Razor 页面的 属性 之一:
[BindProperty]
public string VersionNumber { get; set; } = "0.0.0.0";
我已确认 属性 确实发生了变化,但该变化从未反映在网页上。
我已经尝试了几种方法:
<form>
<label style="margin: 5px;">
Version
</label>
<input type="text" trim="false" uppercase="false" lowercase="false" propercase="false" asp-for="VersionNumber" />
</form>
和
@Html.TextBoxFor(m => m.VersionNumber)
我意识到我错过了它应该如何工作的概念,希望这个问题的答案能让灯泡亮起来。
简而言之,要显示文本,您应该使用 @Html.DisplayFor(c=>c.VersionNumber)
助手。
如果你使用 @Html.TextBoxFor(m => m.VersionNumber)
你告诉 Razor 创建一个文本输入标记。
查看更多信息here
如果我理解正确,您希望在模型中的值发生变化时刷新浏览器中的值 - 您提到了 INotifyPropertyChanged。我假设您以某种方式通过计时器或时间表等触发模型更改。
一个website/page在服务器上渲染,然后显示在浏览器中。因此,要真正获得新值,您需要以某种方式 post 将页面返回服务器,从模型中获取新值,呈现页面并将其显示在浏览器中。
为此,您可以使用用户点击按钮并向服务器查询新数据。如果这不是您想要的,那么也许您可以检查 SignalR,它用于将更改推送到浏览器中呈现的客户端网站。
我对 asp 和一般的 Web 编程还不熟悉。我正在使用 Visual Studio 2017。我创建了一个 Razor Web 应用程序,它使用我为 Windows 应用程序编写的现有数据模型。首次加载时,我能够在我的网页上显示我的数据模型中的值,但我无法弄清楚如何让页面在我的数据模型中发生更改时显示新值。我习惯于在 WPF 中工作,绑定到 Dependency 属性和 INotifyPropertyChanged 属性。这是我用于 Razor 页面的 属性 之一:
[BindProperty]
public string VersionNumber { get; set; } = "0.0.0.0";
我已确认 属性 确实发生了变化,但该变化从未反映在网页上。
我已经尝试了几种方法:
<form>
<label style="margin: 5px;">
Version
</label>
<input type="text" trim="false" uppercase="false" lowercase="false" propercase="false" asp-for="VersionNumber" />
</form>
和
@Html.TextBoxFor(m => m.VersionNumber)
我意识到我错过了它应该如何工作的概念,希望这个问题的答案能让灯泡亮起来。
简而言之,要显示文本,您应该使用 @Html.DisplayFor(c=>c.VersionNumber)
助手。
如果你使用 @Html.TextBoxFor(m => m.VersionNumber)
你告诉 Razor 创建一个文本输入标记。
查看更多信息here
如果我理解正确,您希望在模型中的值发生变化时刷新浏览器中的值 - 您提到了 INotifyPropertyChanged。我假设您以某种方式通过计时器或时间表等触发模型更改。
一个website/page在服务器上渲染,然后显示在浏览器中。因此,要真正获得新值,您需要以某种方式 post 将页面返回服务器,从模型中获取新值,呈现页面并将其显示在浏览器中。
为此,您可以使用用户点击按钮并向服务器查询新数据。如果这不是您想要的,那么也许您可以检查 SignalR,它用于将更改推送到浏览器中呈现的客户端网站。