如何在DOTNET CORE中使用C#提交http表单
我使用c#string builder创建了一个HTML表单,使用的是引用: 在dotnet中,我们可以使用如何在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
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版本”,但你没有说失败的原因是什么。你的问题要清楚。记住,我们不知道你在做什么。我们不是坐在你的电脑前。由你来充分解释你的情况。