每当我发布表单时,我都有一个局部视图,hiddenfor获取null值。当我添加新的它时,它获取空值,但当我编辑,它工作正常。 我使用此代码检查错误。
var errors = ModelState
.Where(x => x.Value.Errors.Count > 0)
.Select(x => new { x.Key, x.Value.Errors })
.ToArray();
错误表示id字段是必需的。
我正在使用@Html.HiddenFor(model => model.Id)
表单是ajax.beginform
有什么问题?
编辑:
[HttpGet]
public ActionResult ProductPartial(int Id = -1)
{
var ProductService = new ProductService();
var Product = new Product();
bool editMode = ProductId > 0;
if (editMode)
{
var ProductId = Convert.ToInt32(ProductId);
var entity = ProductService.GetByProductId(null, ProductId);
Product.Id = entity.ProductId;
Product.ProductName = entity.ProductName;
}
return PartialView(Product);
}
[HttpPost]
public JsonResult ProductPartial(Product Product)
{
//Product id gets null
//Perfome some action
return Json(returnData);
}
Product class
public abstract class ProductBase
{
public virtual int Id{set;get}
public virtual string Name {set;get}
}
public class Product : ProductBase
{}
答案 0 :(得分:-2)
这有效:
// Controller
[HttpPost]
public ActionResult Send(BitcoinTransactionViewModel **RedeemTransaction**)
{
}
// View
@using (Html.BeginForm("Send", "DepositDetails", FormMethod.Post, new { **RedeemTransaction** = Model }))
{
@Html.HiddenFor(m => m.Token);
@Html.HiddenFor(m => m.Transaction.TransactionId);
.
.