如何在DOTNET CORE中使用C#提交http表单

如何在DOTNET CORE中使用C#提交http表单,c#,.net-core,asp.net-core-webapi,asp.net-core-2.1,C#,.net Core,Asp.net Core Webapi,Asp.net Core 2.1,我使用c#string builder创建了一个HTML表单,使用的是引用: 在dotnet中,我们可以使用 Response.Write(formPostText); 但现在我使用的是dotnetcore2.1 并且DOTNET核心不支持DOTNET功能 那么还有其他提交表单的方法吗 示例代码: 在dotnet版本上工作 var formPostText = @"<html><body><div> <form method=""PO

我使用c#string builder创建了一个HTML表单,使用的是引用:

在dotnet中,我们可以使用

Response.Write(formPostText);
但现在我使用的是dotnetcore2.1 并且DOTNET核心不支持DOTNET功能 那么还有其他提交表单的方法吗

示例代码: 在dotnet版本上工作

     var formPostText = @"<html><body><div>
    <form method=""POST"" action=""OtherLogin.aspx"" name=""frm2Post"">
      <input type=""hidden"" name=""field1"" value=""" + TextBox1.Text + @""" /> 
      <input type=""hidden"" name=""field2"" value=""" + TextBox2.Text + @""" /> 
    </form></div><script type=""text/javascript"">document.frm2Post.submit();</script></body></html>
    ";

Response.Write(formPostText);
var formPostText=@”
document.frm2Post.submit();
";
响应。写入(formPostText);

不清楚您是使用MVC还是Web API,但在这两种情况下,在考虑如何使用ModelState验证来验证表单输入时,最好查看以下参考资料:

  • ASP.NET核心MVC模型状态验证-
  • ASP.NET核心Web API-
这些方法大体相同,但有些不同

关于存储在
formPostText
中的HTML,是否有任何理由使用字符串构建表单?我建议使用视图,因为这样做可以更好地将表示层与逻辑层分开。如果必须生成原始HTML内容,可以执行以下操作:

private string GetViewHtml(FormViewModel model)
{
    return this.RenderView("/Views/Shared/FormView.cshtml", model);
}
在这个为MVC 5构建的示例中,
RenderView
是控制器的扩展方法:

public static class ControllerExtensions
{
    public static string RenderView(this System.Web.Mvc.Controller controller, string viewName, object model)
    {
        return RenderView(controller, viewName, new ViewDataDictionary(model));
    }

    public static string RenderView(this System.Web.Mvc.Controller controller, string viewName, ViewDataDictionary viewData)
    {
        var controllerContext = controller.ControllerContext;

        var viewResult = ViewEngines.Engines.FindView(controllerContext, viewName, null);

        StringWriter stringWriter;

        using (stringWriter = new StringWriter())
        {
            var viewContext = new ViewContext(
                controllerContext,
                viewResult.View,
                viewData,
                controllerContext.Controller.TempData,
                stringWriter);

            viewResult.View.Render(viewContext, stringWriter);
            viewResult.ViewEngine.ReleaseView(controllerContext, viewResult.View);
        }

        return stringWriter.ToString();
    }
}
Dotnet核心支持

var s = "some html / html form";

HttpContext.Response.WriteAsync(s.ToString());
查找引用:


Response.Write不提交表单。假设您在ASP.NET应用程序中,它只会向响应对象写入一些文本,这些文本可能会在浏览器中呈现。因此,你的问题没有什么意义。如果你的目标是创建一个用户填写的HTML表单,并允许他们将该表单提交到你的服务器,并捕获响应,那么你可能应该查看一些很棒的教程。你的意思是要向客户端写入一些数据吗?“提交”和“形式”看起来像是在转移注意力。你需要明确说明什么不起作用。你说的只是“不支持dotnet版本”,但你没有说失败的原因是什么。你的问题要清楚。记住,我们不知道你在做什么。我们不是坐在你的电脑前。由你来充分解释你的情况。