C# 如何将表单绑定到Nancy
我已经编写了一个代码片段,通过C#创建HTML表单。但我希望表单的字段在表单提交后成为绑定类的字段。我如何才能做到这一点并检查结果(如果类的字段已填充)?此外,我不知道如何通过C# 如何将表单绑定到Nancy,c#,html,forms,nancy,C#,Html,Forms,Nancy,我已经编写了一个代码片段,通过C#创建HTML表单。但我希望表单的字段在表单提交后成为绑定类的字段。我如何才能做到这一点并检查结果(如果类的字段已填充)?此外,我不知道如何通过Postman或Fiddle测试代码。你能举例说明吗?例如,当通过浏览器填写表单时,我不知道如何查看转发到发送的的结果 HTML表单 <form action="sent” method="POST"<br> <label for="firstName">First Name Labe
Postman
或Fiddle
测试代码。你能举例说明吗?例如,当通过浏览器填写表单时,我不知道如何查看转发到发送的的结果
HTML表单
<form action="sent” method="POST"<br>
<label for="firstName">First Name Label:</label>
<input type="text" title="testTitle" name="firstName" placeholder="First Name" ><br>
<label for="lastName">Last Name Label:</label>
<input type="text" name="lastName" placeholder="Last Name" ><br>
<input type="submit" name = "noname">
</form>
通过这个工作示例,提供表单应该很容易
Get("/api/base", _ =>
{
return Response.AsFile("content/Base.html", "text/html");
});
确保添加内容文件夹,并在更新时将其中的文件复制到输出目录
确保正确关闭标签。
您的表单也可以像这样在提交时调用映射的api
<form action="/api/submit" method="POST">
<br>
<label for="firstName">First Name Label:</label>
<input type="text" title="testTitle" id="firstName" placeholder="First Name"><br>
<label for="lastName">Last Name Label:</label>
<input type="text" id="lastName" placeholder="Last Name" ><br>
<input type="submit" id = "noname">
</form>
姓名标签:
姓氏标签:
Post(“/api/submit”,args=>
{
//这个请求体;
var r=(响应)“;
testClass receivedData=this.Bind();
r=(响应)$“记录接收的名字={receivedData.Name}”
+环境新线+
$“记录接收的姓氏={receivedData.lasname}”;
r、 StatusCode=HttpStatusCode.OK;
返回r;
});
我可能错了,但我认为这是因为您对输入使用了丢弃。使用这个工作示例,为表单提供服务应该很容易
Get("/api/base", _ =>
{
return Response.AsFile("content/Base.html", "text/html");
});
确保添加内容文件夹,并在更新时将其中的文件复制到输出目录
确保正确关闭标签。
您的表单也可以像这样在提交时调用映射的api
<form action="/api/submit" method="POST">
<br>
<label for="firstName">First Name Label:</label>
<input type="text" title="testTitle" id="firstName" placeholder="First Name"><br>
<label for="lastName">Last Name Label:</label>
<input type="text" id="lastName" placeholder="Last Name" ><br>
<input type="submit" id = "noname">
</form>
姓名标签:
姓氏标签:
Post(“/api/submit”,args=>
{
//这个请求体;
var r=(响应)“;
testClass receivedData=this.Bind();
r=(响应)$“记录接收的名字={receivedData.Name}”
+环境新线+
$“记录接收的姓氏={receivedData.lasname}”;
r、 StatusCode=HttpStatusCode.OK;
返回r;
});
我可能错了,但我认为这是因为您对输入使用了丢弃。可能是个人偏好,但我不喜欢使用HTMLname
属性引用数据,如果表单构造失败,可能会导致重复数据。我不喜欢nancy,但它能使用id
属性吗?除非允许重复数据(表格/网格)构造,否则HTML将更加健壮。@bradbury9感谢您提供的信息。当然可以。你的建议听起来更好。因为我现在已经开始使用C#sharp的HTML和web端,所以我不知道这样的细微差别。但是,即使我使用id
代替name
属性,我也不确定我编写的代码是否正确引用了类的字段。您的testClass
中的静态属性听起来很奇怪。有什么原因吗?根据看起来您调用了正确的函数,我想知道处于静态的属性是否没有弄乱nancy的API。@bradbury9我的错误,先生,已修复。关于链接文档中的“如何执行该操作并检查结果(如果类的字段已填充)”,有一个“完整的模型绑定示例”这是数据验证和错误消息的工作。可能是个人偏好,但我不喜欢使用HTMLname
属性引用数据,如果表单构造失败,可能会导致重复数据。我不喜欢nancy,但它能使用id
属性吗?除非允许重复数据(表格/网格)构造,否则HTML将更加健壮。@bradbury9感谢您提供的信息。当然可以。你的建议听起来更好。因为我现在已经开始使用C#sharp的HTML和web端,所以我不知道这样的细微差别。但是,即使我使用id
代替name
属性,我也不确定我编写的代码是否正确引用了类的字段。您的testClass
中的静态属性听起来很奇怪。有什么原因吗?根据看起来您调用了正确的函数,我想知道处于静态的属性是否没有弄乱nancy的API。@bradbury9我的错误,先生,已修复。关于链接文档中的“如何执行该操作并检查结果(如果类的字段已填充)”,有一个“完整的模型绑定示例”它可以进行数据验证和错误消息处理。
Post("/api/submit”, args =>
{
//this.Request.Body;
var r = (Response)"";
testClass receivedData = this.Bind<testClass>();
r = (Response)$"Record recieved First Name = {receivedData.Name}"
+ Environment.NewLine +
$"Record recieved Last Name = {receivedData.SurName}";
r.StatusCode = HttpStatusCode.OK;
return r;
});