【问题标题】:ServiceStack/Razor - how to get POST data on submit form?ServiceStack/Razor - 如何在提交表单上获取 POST 数据?
【发布时间】:2013-04-10 11:51:53
【问题描述】:

我正在尝试学习一些 ServiceStack 的东西。目前,我已经成功完成了本教程(几乎完成):http://www.ienablemuch.com/2012/12/self-hosting-servicestack-serving.html

我要执行的下一步是创建带有提交按钮的 html 表单并捕获输入的数据,例如输入到 C# 代码中的变量中。

我知道如何在 cshtml 文件中创建 html 表单,但我不知道在这种情况下如何使用 ServiceStack 获取输入的 POST 数据。您能否提供任何提示/代码示例。

另外,本教程中有一些我不明白的地方:

19 .要为剃刀页面使用强类型模型,请使用继承指令。首先创建一个模型,它必须是公共的,并且它的复制到 如果更新也必须将输出目录属性设置为复制

这个“模型”究竟是什么以及如何创建它?并且,第 20 节,在 cshtml 代码中:

@inherits 视图页面

那么,什么是“ViewPage”,这个语句究竟是如何工作的?

【问题讨论】:

  • Razor 会将您页面中的 CS 代码编译成一个类,“继承”您说它必须使用哪个基类(ViewPage 是 Razor 没有模型的 HTML 页面的基类)。如果您输入它 (ViewPage),那么它应该(我没有尝试 ServiceStack)将发布的数据捕获到您的模型中,而无需做任何其他事情。
  • 好的,但在这种情况下,“模型”是什么?教程说我应该先创建我的模型,但我不确定这是什么意思?如果我只创建类并将其放入 VievPage,则会出现编译 cshtml 错误说找不到此类(我的意思是 ServiceStack 输出,而不是 Visual Studio 编译错误)。
  • 这是一个将数据从控制器传递到视图的类。可能在 post 方法中,您对控制器中的数据比对视图中的数据更感兴趣。类应该是公共的和可访问的(相同的输出目录)。

标签: c# razor model servicestack html-post


【解决方案1】:

解决了。那么,需要做什么:

  • 创建内部具有公共属性的公共类。属性名称应与我的表单中的 post/get 值匹配

  • 将这个:@inherits ViewPage<BillionaireServiceStackRazorSelfHosting.MyClass> 添加到 cshtml

表单提交后,设置相应的属性。我不知道这是否是好方法(如果不是,请纠正我),但我已经在 MyClass 属性内的“设置”处理程序中添加了一些代码,而不是向使用捕获值的 cshtml 添加代码。

一切似乎都如我所愿。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-25
    • 2018-01-25
    • 2017-07-30
    • 2015-05-31
    • 2010-10-08
    • 1970-01-01
    • 2017-06-01
    • 1970-01-01
    相关资源
    最近更新 更多