代码之家  ›  专栏  ›  技术社区  ›  user9721529

如何使用Razor Pages c从cshtml表单获取数据并将其写入txt文件#

  •  0
  • user9721529  · 技术社区  · 6 年前

    我正在用c#在Razor页面中创建实时聊天网页。

    我有一个包含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#模型从发送的textarea中获取一个值,并将其写入项目文件夹中的文本文件。 希望你能帮忙。 谢谢

    1 回复  |  直到 6 年前
        1
  •  0
  •   st_stefanov    6 年前

    这将描述步骤和流程,并应澄清流程并回答您的问题。

    型号:

    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
    

    您有一个模型、一个控制器和一个视图。 模型声明将用于绑定的变量。 在视图中,您可以声明模型,并设置此模型的属性,如上所示。它是双向绑定,这意味着您可以拥有最初来自服务器的值,并且在提交时这些值也会返回到服务器。

    示例:如果我将属性消息的值设置为“Hello,这是初始值”。然后,这将显示给客户端。 现在,如果它是可编辑字段,用户可以更改该值,例如“这是我的消息”,并且当提交包含此元素的表单时,控制器应具有类型为的参数 ChatModel 。。。然后是ASP。Net引擎将客户端的值绑定到相应的变量。

    是的。。。您将在服务器上获得消息值,您可以持久化到任何您想要的内容,数据库、文件或传输到其他服务。。。