C# 带前缀的RemoteAttribute
我有一个容器和嵌套的viewmodels,并使用EditorFor渲染嵌套的viewmodels,我想向一个viewmodel(ConcreteViewModelA::prop3)中的一个属性添加remoteAttribute以进行验证。然而,在validation Controller操作方法上,我得到的是null 我尝试过使用Validate([Bind(Prefix=“item”)]string prop3),但仍然返回为NULL。有什么想法吗C# 带前缀的RemoteAttribute,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,我有一个容器和嵌套的viewmodels,并使用EditorFor渲染嵌套的viewmodels,我想向一个viewmodel(ConcreteViewModelA::prop3)中的一个属性添加remoteAttribute以进行验证。然而,在validation Controller操作方法上,我得到的是null 我尝试过使用Validate([Bind(Prefix=“item”)]string prop3),但仍然返回为NULL。有什么想法吗 public class SomeConta
public class SomeContainer
{
public List<ISomethingViewModel> SomeViewModels { get; set; }
}
public class ConcreteViewmodelA : ISomethingViewModel
{
public int prop1 { get; set; }
public int prop2 { get; set; }
[Remote("Validate", "RemoteValidation")]
public string prop3 { get; set; }
}
public class ConcreteViewModelB : ISomethingViewModel
{
public int prop1 { get; set; }
public int prop2 { get; set; }
}
public interface ISomethingViewModel
{
int prop1 { get; set; }
int prop2 { get; set; }
}
公共类SomeContainer
{
公共列表SomeViewModels{get;set;}
}
公共类ConcreteViewmodelA:ISomethingViewModel
{
公共int prop1{get;set;}
公共int prop2{get;set;}
[远程(“验证”、“远程验证”)]
公共字符串prop3{get;set;}
}
公共类ConcreteViewModelB:ISomethingViewModel
{
公共int prop1{get;set;}
公共int prop2{get;set;}
}
公共界面等距视图模型
{
int prop1{get;set;}
int prop2{get;set;}
}
视图:
@model test.Models.SomeContainer
@使用(Html.BeginForm())
{
@Html.ValidationSummary()
从这里开始
foreach(Model.SomeViewModels中的var项)
{
@EditorFor(x=>item)
}
}
尝试定义视图模型:
public class MyViewModel
{
public string Prop3 { get; set; }
}
然后:
public ActionResult Validate([Bind(Prefix = "item")] MyViewModel model)
{
return Json(
!string.IsNullOrEmpty(model.Prop3),
JsonRequestBehavior.AllowGet
);
}
请与firebug联系。您的url请求如下所示
Validate?item.prop3=
所以你可以这样做来读取值
public ActionResult Validate(string prop3)
{
string prop3Val = Request.QueryString["item.prop3"].ToString();
//your operations with prop3Val
return Json(prop3Val, JsonRequestBehavior.AllowGet);
}
是,firebug将URL显示为:[link]Validate?item.prop3=helloI能够使用:public JsonResult Validate([Bind(Prefix=“item”)]ConcreteViewmodelA vm3使其正常工作
public ActionResult Validate(string prop3)
{
string prop3Val = Request.QueryString["item.prop3"].ToString();
//your operations with prop3Val
return Json(prop3Val, JsonRequestBehavior.AllowGet);
}