我有以下GET
方法,它是创建表单的代码
public ActionResult Add_Product(string Product_ID)
{
AddNewProduct sample = new AddNewProduct();
return View(sample);
}
这是
的模型类public class AddNewProduct
{
public string Product_ID { get; set; }
...
}
这是create form
@model project_name.Models.AddNewProduct
<h4>Add New Product</h4>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
@Html.ValidationSummary(true, "", new { @class = "text-danger" }) <div class="form-group">
@Html.LabelFor(model => model.Product_ID, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.TextBoxFor(model => model.Product_ID, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.Product_ID, "", new { @class = "text-danger" })
</div>
</div>
.....
<div>
@Html.ActionLink("Back to AddNewProduct", "AddNewProduct","Home" , new {Product_ID = Model.Product_ID})
</div>
}
我可以使用此视图页面插入Product_ID。但是,点击此Back to AddNewProduct
链接并调试AddNewProduct
后,我看不到string Product_ID
为什么此模型属性不能很好地绑定
答案 0 :(得分:1)
您需要指定值。将您从get方法发送的Product_ID
的值分配给类
Product_ID
属性
public ActionResult Add_Product(string Product_ID)
{
AddNewProduct sample = new AddNewProduct();
sample.Product_ID = Product_ID;
return View(sample);
}
答案 1 :(得分:1)
要将文本框的值传递给Add_Product()
GET方法,您需要使用javascript / jquery。用
@Html.ActionLink(..)
<a href="#" class="back">Back to AddNewProduct</a>
并添加以下脚本
var baseUrl = '@Url.Action("Add_Product", "Home")';
$('#back').click(function() {
var id = $('#Product_ID').val();
location.href = baseUrl + '/' + id;
}}
注意:location.href = baseUrl + '/' + id;
假设您已定义了{controller}/{action}/{Product_ID}
的特定路线,否则需要
location.href = baseUrl + '?Product_ID=' + id;
或者,将方法参数更改为string id
,以便它使用默认路径
另请注意,您可能希望将方法更改为
public ActionResult Add_Product(string Product_ID)
{
AddNewProduct sample = new AddNewProduct
{
Product_ID = Product_ID
};
return View(sample);
}
因此,如果您点击Back to AddNewProduct
链接,该视图将显示您输入的上一个值。
答案 2 :(得分:0)
@Html.ActionLink
的第二个参数是actionName
,但您发送了模型名称(AddNewProduct
)。将其更改为:
@Html.ActionLink("Back to AddNewProduct", "Add_Product","Home" , new {Product_ID = Model.Product_ID})
或者使用此重载(在使用此ActionLink
重载时也需要发送null):
@Html.ActionLink("Back to AddNewProduct", "Add_Product","Home" , new {Product_ID = Model.Product_ID}, null)