C# 如何在HttpPost上获取动态创建的textbox的值
我正在动态创建C# 如何在HttpPost上获取动态创建的textbox的值,c#,asp.net,asp.net-mvc,asp.net-mvc-3,c#-4.0,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 3,C# 4.0,我正在动态创建Textbox控件,如下所示,但在HttpPost上,它不会返回任何内容。我希望可以在HttpPost上的控制器中访问textbox的值。谁能告诉我如何才能做到这一点。谢谢 型号 public class MyViewModel { public ControlViewModel[] Controls { get; set; } } public abstract class ControlViewModel { public abstract string Ty
Textbox
控件,如下所示,但在HttpPost
上,它不会返回任何内容。我希望可以在HttpPost
上的控制器中访问textbox的值。谁能告诉我如何才能做到这一点。谢谢
型号
public class MyViewModel
{
public ControlViewModel[] Controls { get; set; }
}
public abstract class ControlViewModel
{
public abstract string Type { get; }
public bool Visible { get; set; }
public string Label { get; set; }
public string Name { get; set; }
}
public class TextBoxViewModel : ControlViewModel
{
public override string Type
{
get { return "textbox"; }
}
public string Value { get; set; }
}
控制器
public ActionResult Index(Guid? id)
{
return Results(id);
}
[HttpPost]
public ActionResult Index(MyViewModel model)
{
// Logic here
}
查看
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPages/Site.master"
Inherits="System.Web.Mvc.ViewPage<MySite.Model.ViewModels.MyViewModel>" %>
<div>
<% using (Html.BeginForm("Index", "MyController", FormMethod.Post, null))
{ %>
<% for (int i = 0; i < Model.Controls.Length; i++)
{ %>
<%Html.RenderPartial("TextboxControl", (TextBoxViewModel)Model.Controls[i]); %>
<% } %>
<input type="submit" value="Submit" class="btn btn-primary"/>
<% } %>
</div>
用户控制
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MySite.Model.ViewModels.TextBoxViewModel>" %>
<div>
<%
var controlType = Model.Type;
var controlName = Model.Name;
%>
<%= Html.TextBoxFor(x => x.Value, new { id = controlName, type = controlType, @class = "input-medium" })%>
</div>
x、 值,新的{id=controlName,type=controlType,@class=“input medium”})%>
我认为您应该使用FindControl()
查看一下您使用重复的
名称
(和无效的id
属性)创建的控件。动态添加对象和对象的一些选项。但在任何情况下,post参数都只会初始化ControlViewModel
的集合,而不会初始化TextBoxViewModel
所以Html.TextBoxFor(x=>x.Value)
将ignored@StephenMuecke谢谢你能提供一个例子吗?我在之前的评论中给了你两个链接,这是MVC。控制器不知道有关页控件的信息。