bea*_*ous 30 validation asp.net-mvc data-annotations
我一直在使用新的ASP.Net MVC 3 RemoteAttribute向具有单个参数的动作方法发送远程调用.现在我想使用AdditionalFields属性传入第二个参数:
[Remote("IsEmailAvailable", "Users", AdditionalFields = "InitialEmail")]
Run Code Online (Sandbox Code Playgroud)
IntialEmail是视图中的隐藏字段.动作如下:
public JsonResult IsEmailAvailable(
string email,
string InitialEmail)
{
//etc.
}
Run Code Online (Sandbox Code Playgroud)
呈现视图时,将填充隐藏字段,但是远程触发Action方法时,该值为空字符串.
我在其他地方看到区分大小写可能是一个问题,所以我确保Action方法对两个参数都有相同的情况.
还有其他建议吗?此AdditionalFields曾被称为Fields.
谢谢,
Beaudetious
Dar*_*rov 59
奇怪.这个对我有用:
模型:
public class MyViewModel
{
[Required]
[Remote("IsEmailAvailable", "Home", AdditionalFields = "InitialEmail")]
public string Email { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
控制器:
public class HomeController : Controller
{
public ActionResult Index()
{
return View(new MyViewModel());
}
[HttpPost]
public ActionResult Index(MyViewModel model)
{
return View(model);
}
public ActionResult IsEmailAvailable(string email, string initialEmail)
{
return Json(false, JsonRequestBehavior.AllowGet);
}
}
Run Code Online (Sandbox Code Playgroud)
视图:
@model AppName.Models.MyViewModel
@{
ViewBag.Title = "Home Page";
}
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
@using (Html.BeginForm())
{
@Html.TextBoxFor(x => x.Email)
@Html.ValidationMessageFor(x => x.Email)
<input type="hidden" name="InitialEmail" value="foo@bar.com" />
<input type="submit" value="OK" />
}
Run Code Online (Sandbox Code Playgroud)
IIRC在ASP.NET MVC 3 RC2中有一些错误,这个错误在RTM中修复了.
| 归档时间: |
|
| 查看次数: |
32706 次 |
| 最近记录: |