首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

关于MVC3中 Remote 的参数取值有关问题

2013-09-26 
关于MVC3中 Remote 的参数取值问题网上看到的例子,当将model当成一个属性时,验证方法传过来的参数就为空?

关于MVC3中 Remote 的参数取值问题
网上看到的例子,当将model当成一个属性时,验证方法传过来的参数就为空?源码如下
model类:
public class User
    {
        [Required(ErrorMessage="姓名不能为空")]
        [Remote("IsUnique_Available","Home")]
        public string Name { get; set; }
    }

封装后的Users类
 public class EditUserVM
    {
        /// <summary>
        /// User VM
        /// </summary>
        public User Users
        { 
            get;
            set;
        }
    }
view页面:
@model MvcRemoteValidation.ViewModels.UserViewModels.EditUserVM

@{
    ViewBag.Title = "Create";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>Create</h2>

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>User</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.Users.Name)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Users.Name)
            @Html.ValidationMessageFor(model => model.Users.Name)
        </div>

        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>


}

<div>
    @Html.ActionLink("Back to List", "Index")
</div>
Controller中的代码:
public JsonResult IsUnique_Available(string Name)//User封装成属性后无法取到值?
        {
            List<User> users = UserService.GetUsers();
            users = users.Where(u => u.Name == Name).ToList();
            if (users.Count == 0)
                return Json(true, JsonRequestBehavior.AllowGet);

                string suggestedUID = String.Format(CultureInfo.InvariantCulture,
                "{0} 已经存在。", Name);
            

            return Json(suggestedUID, JsonRequestBehavior.AllowGet);
        }
 
 
这时,IsUnique_Available方法中的参数name,传过来的都为null ? 但如果在view页面,直接用User,参数就可取到值,请问各位,是什么原因?谢谢!


        public JsonResult IsUnique_Available(EditUserVM model)
        {
            List<User> users = UserService.GetUsers();
            users = users.Where(u => u.Name == model.Users.Name).ToList();
            if (users.Count == 0)
                return Json(true, JsonRequestBehavior.AllowGet);

            string suggestedUID = String.Format(CultureInfo.InvariantCulture,


            "{0} 已经存在。", model.Users.Name);


            return Json(suggestedUID, JsonRequestBehavior.AllowGet);
        }

热点排行