Asp.net mvc 如何获取视图的文本框?在我的控制器中
我按照这个例子来建立n对n关系 它可以正常工作,但是对于与数据库有效负载的n对n关系,我可以进行[HttpGet]并显示我想要显示的视图,但现在我想知道如何获得视图中的文本框,我可以在控制器中获得复选框(见下面的操作)这是我的观点,所以我的问题是怎样才能得到文本框呢?在我的控制器中为每个复选框Asp.net mvc 如何获取视图的文本框?在我的控制器中,asp.net-mvc,textbox,Asp.net Mvc,Textbox,我按照这个例子来建立n对n关系 它可以正常工作,但是对于与数据库有效负载的n对n关系,我可以进行[HttpGet]并显示我想要显示的视图,但现在我想知道如何获得视图中的文本框,我可以在控制器中获得复选框(见下面的操作)这是我的观点,所以我的问题是怎样才能得到文本框呢?在我的控制器中为每个复选框 @using (Html.BeginForm("AgregarEmpresas", "Empleado")) { <fieldset> <div class="editor-f
@using (Html.BeginForm("AgregarEmpresas", "Empleado"))
{
<fieldset>
<div class="editor-field">
<table>
<tr>
@{
int cnt = 0;
List<ITCOrganigrama.ViewModel.AsignarEmpresa> empresas = ViewBag.Empresas;
foreach (var empresa in empresas)
{
if (cnt++ % 5 == 0) {
@: </tr> <tr>
}
@: <td>
<input type="checkbox"
name="selectedEmpresa"
value="@empresa.EmpresaId"
@(Html.Raw(empresa.Assigned ? "checked=\"checked\"" : "")) />
@empresa.Nombre
<div>
@Html.LabelFor(model => empresa.cargo)
@Html.TextBoxFor(model => empresa.cargo, new { style = "width: 150px;" })
@Html.ValidationMessageFor(model => empresa.cargo)
</div>
@:</td>
}
@: </tr>
}
</table>
</div>
<p>
<input type="submit" value="Agregar" />
</p>
</fieldset>
}
我的最后意见是:
http://www.subirimagenes.com/otros-add1-7406511.html
编辑:
ViewModel类
public class AsignarEmpresa
{
public int EmpresaId { get; set; }
public string Nombre { get; set; }
public string cargo { get; set; }
public bool Assigned { get; set; }
}
查看您的后期操作及其参数。那些名字真的很重要 你的复选框
<input type="checkbox"
name="selectedEmpresa"
value="@empresa.EmpresaId"
然后您必须更改生成的html
@Html.TextBoxFor(model => empresa.cargo, new { style = "width: 150px;", name="empresaTextBox" })
通过这些更改,您应该可以在操作中获得一些数据。然而,你会得到一些奇怪的东西,因为你有多个复选框和文本框,以便告诉model binder,其中有多个元素,你必须准备包含索引号的输入的特殊名称
看看这个例子
<input name="childs[0]"></input>
<input name="childs[1]"></input>
在这种情况下,模型绑定器将创建包含两个对象的对象数组
因此,最后您的代码必须如下所示
@using (Html.BeginForm("AgregarEmpresas", "Empleado"))
{
<fieldset>
<div class="editor-field">
<table>
<tr>
@{
int cnt = 0;
int i=0;
List<ITCOrganigrama.ViewModel.AsignarEmpresa> empresas = ViewBag.Empresas;
foreach (var empresa in empresas)
{
if (cnt++ % 5 == 0) {
@: </tr> <tr>
}
@: <td>
<input type="checkbox"
name="selectedEmpresa[@i]"
value="@empresa.EmpresaId"
@(Html.Raw(empresa.Assigned ? "checked=\"checked\"" : "")) />
@empresa.Nombre
<div>
@Html.LabelFor(model => empresa.cargo)
@Html.TextBoxFor(model => empresa.cargo, new { style = "width: 150px;" ,name=String.Format("empresaTextBox\[{0}\]",i) })
@Html.ValidationMessageFor(model => empresa.cargo)
</div>
@:</td>
i++;
}
@: </tr>
}
</table>
</div>
<p>
<input type="submit" value="Agregar" />
</p>
</fieldset>
}
@使用(Html.BeginForm(“AgregarEmpresas”、“Empleado”))
{
@{
int-cnt=0;
int i=0;
List empresas=ViewBag.empresas;
foreach(在empresas中为var empresa)
{
如果(cnt++%5==0){
@:
}
@:
@名为empresa的酒店
@LabelFor(model=>empresa.cargo)
@Html.TextBoxFor(model=>empresa.cargo,新{style=“width:150px;”,name=String.Format(“empresaTextBox\[{0}\]”,i)})
@Html.ValidationMessageFor(model=>empresa.cargo)
@:
i++;
}
@:
}
}
如果你能让它工作的话。然后我将尝试创建一个类,其中包含一个布尔值和一个字符串值。通过此更改,您可以对类数组而不是两个带字符串的数组进行操作。a执行此操作时,我在viewmodel中的empresaTextBox中得到null,该类带有布尔值和字符串
<input name="childs[0]"></input>
<input name="childs[1]"></input>
@using (Html.BeginForm("AgregarEmpresas", "Empleado"))
{
<fieldset>
<div class="editor-field">
<table>
<tr>
@{
int cnt = 0;
int i=0;
List<ITCOrganigrama.ViewModel.AsignarEmpresa> empresas = ViewBag.Empresas;
foreach (var empresa in empresas)
{
if (cnt++ % 5 == 0) {
@: </tr> <tr>
}
@: <td>
<input type="checkbox"
name="selectedEmpresa[@i]"
value="@empresa.EmpresaId"
@(Html.Raw(empresa.Assigned ? "checked=\"checked\"" : "")) />
@empresa.Nombre
<div>
@Html.LabelFor(model => empresa.cargo)
@Html.TextBoxFor(model => empresa.cargo, new { style = "width: 150px;" ,name=String.Format("empresaTextBox\[{0}\]",i) })
@Html.ValidationMessageFor(model => empresa.cargo)
</div>
@:</td>
i++;
}
@: </tr>
}
</table>
</div>
<p>
<input type="submit" value="Agregar" />
</p>
</fieldset>
}