上下文:我需要使用如下两个模型重用剃刀局部视图
public class Address
{
public string CountryName { get; set; }
public string CityName { get; set; }
public string StreetName { get; set; }
public string PostalCode { get; set; }
public string StreetNumber { get; set; }
}
public class Customer
{
public string FirstName { get; set; }
public string LastName { get; set; }
public Address Address { get; set; }
}
视图应如下所示:没有 form 标签,没有提交按钮,只有绑定到模型的控件
@Html.LabelFor(m => m.CountryName)
@Html.TextBoxFor(m => m.CountryName)
挑战在于,该视图应作为“地址编辑表单”和任何其他表单的一部分插入。结果被发送到具有不同模型的不同动作。当只是“地址编辑”表单时,没有问题,控件绑定到“地址”类的属性,并且一切正常。
当我尝试在另一种形式(地址是模型的属性而不是模型本身(客户))中使用它时,就会出现问题。我不能仅将地址字段作为此视图的模型,因为该操作正在等待Customer.Address,但是控件绑定到属性而没有提及Customer
这是HTML的区别
<!-- Edit Address -->
<label for="CountryName_input">Country</label>
<input id="CountryName_input" name="CountryName" type="text" value="">
<!-- Edit Customer -->
<label for="Address_CountryName_input">Country</label>
<input id="Address_CountryName_input" name="Address.CountryName" type="text" value="">
在两种情况下都可以使用此视图吗?我开始研究需要
的HTML帮助器。Expression<Func<TModel, string>> selector
但直到现在都没有成功。
有人可以帮助我吗?