gpt4 book ai didi

asp.net-mvc - ASP.Net MVC 3 中的远程验证 : How to use AdditionalFields in Action Method

转载 作者:行者123 更新时间:2023-12-02 04:21:16 24 4
gpt4 key购买 nike

我一直在使用新的 ASP.Net MVC 3 RemoteAttribute 将远程调用发送到具有单个参数的操作方法。现在我想使用AdditionalFields 属性传入第二个参数:

[Remote("IsEmailAvailable", "Users", AdditionalFields = "InitialEmail")]

其中 IntialEmail 是 View 中的隐藏字段。该操作如下所示:

public JsonResult IsEmailAvailable(
string email,
string InitialEmail)
{
//etc.
}

渲染 View 时,会填充隐藏字段,但远程触发 Action 方法时,该值为空字符串。

我在其他地方看到大小写敏感可能是一个问题,因此我确保 Action 方法的两个参数具有相同的大小写。

还有其他建议吗?这个AdditionalFields过去被称为Fields。

谢谢

美丽动人

最佳答案

奇怪。它对我有用:

型号:

public class MyViewModel
{
[Required]
[Remote("IsEmailAvailable", "Home", AdditionalFields = "InitialEmail")]
public string Email { get; set; }
}

Controller :

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);
}
}

查看:

@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" />
}

IIRC ASP.NET MVC 3 RC2 中的远程验证存在一些错误,已在 RTM 中修复。

关于asp.net-mvc - ASP.Net MVC 3 中的远程验证 : How to use AdditionalFields in Action Method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4752877/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com