@Html.BeginForm 不重定向到指定的 ActionName
@Html.BeginForm does not redirect to assigned ActionName
@using (Html.BeginForm("SerialNumber", "Test", FormMethod.Get))
{
<div class="form-group">
<label class="control-label col-md-8 col-sm-3 col-xs-12" for="color-name">
Serial Number <span class="required">*</span>
</label>
<div class="col-md-4 col-sm-6 col-xs-12 input-group">
@Html.TextBox("serial_number", null, new { @id = "txtSearch", @class = "form-control col-md-7 col-xs-12", type = "text", required = "required" })
<span class="btn btn-default input-group-addon">
<span class="glyphicon glyphicon-barcode"></span>
</span>
</div>
<input type="submit" value="Search" class="btn btn-primary" />
</div>
}
我正在尝试将 TextBox "serial_number" 值传递给测试控制器的 "SerialNumber" ActionResult。但该值仅传递给测试控制器的 "AddSerialNumber" ActionResult。我已尽力而为,但找不到解决方案。请帮助。
Please See the Application ScreenShot.
public ActionResult AddSerialNumber()
{
return View(db.sales.ToList());
}
[HttpGet]
public ActionResult SerialNumber(int serial_number)
{
...
return View();
}
[HttpGet]
public ActionResult SerialNumber(string serial_number)
{
...
return View();
}
您必须使用字符串变量来获取文本框的值。
尝试使用 formmethod POST
和 controller action
方法的注释 POST
发布数据。
并为您指定为 txtSearch
的文本框提供 ID 为 serial_number
@using (Html.BeginForm("SerialNumber", "Test", FormMethod.POST))
{
<div class="form-group">
<label class="control-label col-md-8 col-sm-3 col-xs-12" for="color-name">
Serial Number <span class="required">*</span>
</label>
<div class="col-md-4 col-sm-6 col-xs-12 input-group">
@Html.TextBox("serial_number", null, new { @id = "serial_number", @class = "form-control col-md-7 col-xs-12", type = "text", required = "required" })
<span class="btn btn-default input-group-addon">
<span class="glyphicon glyphicon-barcode"></span>
</span>
</div>
<input type="submit" value="Search" class="btn btn-primary" />
</div>
}
[HttpPost]
public ActionResult SerialNumber(string serial_number)
{
...
return View();
}
试试下面的方法。
创建您的视图模型,也许 class 来保持销售。
public class ViewModel
{
public List<Sale> Sales { get; set; }
public string SerialNumber { get; set; }
}
public class Sale
{
public string Field1 { get; set; }
public string Field2 { get; set; }
}
然后在您的控制器中执行以下操作。
[HttpGet]
public ActionResult AddSerialNumber()
{
var myModel = new ViewModel();
myModel.Sales = db.sales.ToList();
return View(myModel);
}
[HttpPost]
public ActionResult SerialNumber(ViewModel modelPosted)
{
//Do stuf with model
return View();
}
然后从模型构建视图并更改为 Post 指令。
@model ViewModel
@using (Html.BeginForm("SerialNumber", "Test", FormMethod.Post))
{
<div class="form-group">
<label class="control-label col-md-8 col-sm-3 col-xs-12" for="color-name">
Serial Number <span class="required">*</span>
</label>
<div class="col-md-4 col-sm-6 col-xs-12 input-group">
@Html.TextBoxFor(x=> x.SerialNumber, new { @class = "form-control col-md-7 col-xs-12", required = "required" })
<span class="btn btn-default input-group-addon">
<span class="glyphicon glyphicon-barcode"></span>
</span>
</div>
<input type="submit" value="Search" class="btn btn-primary" />
</div>
}
这将 post 发送到您的控制器。我在本地进行了一个简单的设置,并且可以正常工作。
希望对您有所帮助。
Ps。得走了..祝你好运
@using (Html.BeginForm("SerialNumber", "Test", FormMethod.Get))
{
<div class="form-group">
<label class="control-label col-md-8 col-sm-3 col-xs-12" for="color-name">
Serial Number <span class="required">*</span>
</label>
<div class="col-md-4 col-sm-6 col-xs-12 input-group">
@Html.TextBox("serial_number", null, new { @id = "txtSearch", @class = "form-control col-md-7 col-xs-12", type = "text", required = "required" })
<span class="btn btn-default input-group-addon">
<span class="glyphicon glyphicon-barcode"></span>
</span>
</div>
<input type="submit" value="Search" class="btn btn-primary" />
</div>
}
我正在尝试将 TextBox "serial_number" 值传递给测试控制器的 "SerialNumber" ActionResult。但该值仅传递给测试控制器的 "AddSerialNumber" ActionResult。我已尽力而为,但找不到解决方案。请帮助。
Please See the Application ScreenShot.
public ActionResult AddSerialNumber()
{
return View(db.sales.ToList());
}
[HttpGet]
public ActionResult SerialNumber(int serial_number)
{
...
return View();
}
[HttpGet]
public ActionResult SerialNumber(string serial_number)
{
...
return View();
}
您必须使用字符串变量来获取文本框的值。
尝试使用 formmethod POST
和 controller action
方法的注释 POST
发布数据。
并为您指定为 txtSearch
serial_number
@using (Html.BeginForm("SerialNumber", "Test", FormMethod.POST))
{
<div class="form-group">
<label class="control-label col-md-8 col-sm-3 col-xs-12" for="color-name">
Serial Number <span class="required">*</span>
</label>
<div class="col-md-4 col-sm-6 col-xs-12 input-group">
@Html.TextBox("serial_number", null, new { @id = "serial_number", @class = "form-control col-md-7 col-xs-12", type = "text", required = "required" })
<span class="btn btn-default input-group-addon">
<span class="glyphicon glyphicon-barcode"></span>
</span>
</div>
<input type="submit" value="Search" class="btn btn-primary" />
</div>
}
[HttpPost]
public ActionResult SerialNumber(string serial_number)
{
...
return View();
}
试试下面的方法。
创建您的视图模型,也许 class 来保持销售。
public class ViewModel
{
public List<Sale> Sales { get; set; }
public string SerialNumber { get; set; }
}
public class Sale
{
public string Field1 { get; set; }
public string Field2 { get; set; }
}
然后在您的控制器中执行以下操作。
[HttpGet]
public ActionResult AddSerialNumber()
{
var myModel = new ViewModel();
myModel.Sales = db.sales.ToList();
return View(myModel);
}
[HttpPost]
public ActionResult SerialNumber(ViewModel modelPosted)
{
//Do stuf with model
return View();
}
然后从模型构建视图并更改为 Post 指令。
@model ViewModel
@using (Html.BeginForm("SerialNumber", "Test", FormMethod.Post))
{
<div class="form-group">
<label class="control-label col-md-8 col-sm-3 col-xs-12" for="color-name">
Serial Number <span class="required">*</span>
</label>
<div class="col-md-4 col-sm-6 col-xs-12 input-group">
@Html.TextBoxFor(x=> x.SerialNumber, new { @class = "form-control col-md-7 col-xs-12", required = "required" })
<span class="btn btn-default input-group-addon">
<span class="glyphicon glyphicon-barcode"></span>
</span>
</div>
<input type="submit" value="Search" class="btn btn-primary" />
</div>
}
这将 post 发送到您的控制器。我在本地进行了一个简单的设置,并且可以正常工作。
希望对您有所帮助。
Ps。得走了..祝你好运