c# - 如何从 cshtml 表单获取数据并使用 Razor Pages c# 将其写入 txt 文件
问题描述
我正在使用 c# 在 Razor Pages 中创建实时聊天网页。
我有一个包含 gui 的 cshtml 表单。
@page
@model Project.Pages.LiveChatModel
@{
ViewData["Title"] = "LiveChat";
Layout = "~/Pages/_LoggedIn.cshtml";
}
<div class="container">
<h2>Live Chat</h2>
<div id="enterName">
Enter your name: <input type="text" id="name" />
<button id="btnName">Save</button>
</div>
<div id="currentName">
Your Name:
</div>
<div id="supportName">
Support Name: Jeff
</div>
Chat History
<div id="messages">
</div>
<div>
<textarea id="message" name="Message" cols="100"></textarea>
<button id="sendMessage">Send</button>
</div>
</div>
我想要做的是使用 C# 模型从发送的文本区域中获取一个值,并将其写入项目文件夹中的文本文件。希望你能帮忙。谢谢
解决方案
这描述了步骤和流程,应该阐明过程并回答您的问题。
模型:
public class ChatModel
{
public string Message{ get; set; }
看法:
@model ChatModel
@using (Html.BeginForm("SendMessage", "MessageController", FormMethod.Post}))
{
@Html.TextAreaFor(model => model.Message)
控制器:
public class MessageController : Controller
[HttpPost]
public ActionResult SendMessage(ChatModel viewModel)
{
var message = viewModel.Message;
// Code to save to file here
你有一个模型、一个控制器和一个视图。模型声明将用于绑定的变量。在视图中声明模型并设置此模型的属性,如上所示。它是双向绑定,这意味着您可以拥有最初来自服务器的值,并且这些值在您提交时也会返回到服务器。
示例:如果我将属性 Message 的值设置为“您好,这是初始值”。然后这将显示给客户端。现在,如果它是可编辑字段,用户可以更改该值,例如“这是我的消息”,当提交包含此元素的表单时,控制器应该具有类型的参数ChatModel
......然后 ASP.Net 引擎将绑定从客户端到相应变量的值。
是的...您将在服务器上获得消息值,并且您可以坚持到任何您想要的、数据库、文件或进一步传输到另一个服务...
推荐阅读
- graphql - 缓存更新中的 Graphql 别名数据对象
- sql - Postgres:SQL 错误 [42883]:错误:运算符不存在:uuid = text
- python - Python Scraping:无论如何,我可以使用 beautifulsoup 来抓取这行代码吗?(查找包含特定标签/字符串的标签内容)
- flutter - 颤振 Gradle 任务组装调试失败
- pyspark - 如何使用 PySpark 中的二元组/n-gram 算法到达字符列表?
- ios - xamarin.forms 自今天更新 (15.9.2021) 以来无法再发布到应用商店显示图标大小错误
- spring - Mockito Powermock 不模拟构造函数
- google-cloud-firestore - 尝试从我的 Google 云功能访问我的 Firestore 数据库,但我在服务器日志中不断收到错误消息
- r - 将 r 中的绘图保存在 PowerPoint 的图层中
- asp.net - 选择下拉列表错误 500 时,aspx.vb 页面不起作用