Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将表单绑定到Nancy_C#_Html_Forms_Nancy - Fatal编程技术网

C# 如何将表单绑定到Nancy

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

我已经编写了一个代码片段,通过C#创建HTML表单。但我希望表单的字段在表单提交后成为绑定类的字段。我如何才能做到这一点并检查结果(如果类的字段已填充)?此外,我不知道如何通过
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;
});

我可能错了,但我认为这是因为您对输入使用了丢弃。

可能是个人偏好,但我不喜欢使用HTML
name
属性引用数据,如果表单构造失败,可能会导致重复数据。我不喜欢nancy,但它能使用
id
属性吗?除非允许重复数据(表格/网格)构造,否则HTML将更加健壮。@bradbury9感谢您提供的信息。当然可以。你的建议听起来更好。因为我现在已经开始使用C#sharp的HTML和web端,所以我不知道这样的细微差别。但是,即使我使用
id
代替
name
属性,我也不确定我编写的代码是否正确引用了类的字段。您的
testClass
中的静态属性听起来很奇怪。有什么原因吗?根据看起来您调用了正确的函数,我想知道处于
静态的属性是否没有弄乱nancy的API。@bradbury9我的错误,先生,已修复。关于链接文档中的“如何执行该操作并检查结果(如果类的字段已填充)”,有一个“完整的模型绑定示例”这是数据验证和错误消息的工作。可能是个人偏好,但我不喜欢使用HTML
name
属性引用数据,如果表单构造失败,可能会导致重复数据。我不喜欢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;
});