2016-03-21 2 views
2

мне нужно сделать свою собственную функцию Validate, и я нашел это: http://www.tugberkugurlu.com/archive/asp-net-mvc-remote-validation-for-multiple-fields-with-additionalfields-propertyRemote Атрибут не работает в MVC ASP.NET

Я пытался использовать удаленный атрибут, однако хром не передает никакой информации, мой метод JsonResult и я не знаю почему.

Мои ViewModel:

[Remote("Divisibility", "Account", HttpMethod = "POST", ErrorMessage = "Value is incorrect.")] 
public int Amount { get; set; } 

Мой Вид:

<script src="~/Scripts/jquery.validate.min.js"></script> 
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script> 
     @using (Html.BeginForm()) 
     { 
      for (var i = 0; i < Model.FirstSetList.Count; i++) 
      { 
       <tr> 
        <td> 
         @Html.DisplayFor(model => model.FirstSetList[i].Name) 
         @Html.HiddenFor(model => model.FirstSetList[i].Name) 
        </td> 
        <td> 
         @Html.DisplayFor(model => model.FirstSetList[i].Pack) 
         @Html.HiddenFor(model => model.FirstSetList[i].Pack) 
        </td> 
        <td> 
         @Html.TextBoxFor(model => model.FirstSetList[i].Amount) 
         @Html.ValidationMessageFor(model => model.FirstSetList[i].Amount) 
        </td> 
       </tr> 
      } 
      <input type="submit" value="Confirm" class="btn btn-success" /> 
     } 
    </table> 
</div> 

Мой контроллер:

[HttpPost] 
public JsonResult Divisibility(int Amount) 
{ 
    var value = User.Identity.GetUserId().Where(x => x.Equals("qqqqq")); 
    //I know that this condition does not make sense, but this was only for test. 
    //Anyway like i said, chrome doesn't send anything to this method. 

    return Json(value == null); 
} 

UPDATE

Не тот же вопрос, как здесь Remote Validation for LIST of MODELs My Remote атрибуту, не посылает информацию на мой JsonResult метод, не нулевой, а не 0 просто ничего! Никогда не достигайте точки останова в этом методе. Также в NETWORK CONSOLE в chrome нет никакого трафика. Похоже, что AJAX не работает в этом случае, и я не знаю почему?

+0

попробовать '' INT Amount'' –

+0

вы можете проверить на консоли при использовании хрома, и если светлячок Firebug консоли, чтобы увидеть, если она проходит значение? –

+0

Ничего, просто пусто. – DiPix

ответ

0

Попробуйте проходя модель отверстия для вашего метода JsonResult, как:

контроллер

[HttpPost] 
public JsonResult Divisibility(ModelName model) 
{ 
    //user your variable name 
    model.Value = User.Identity.GetUserId().Where(x => x.Equals("qqqqq")); 
    return Json(value == null); 
} 

Или удалить "HttpPost" просто чтобы увидеть, если теперь это передача значений:

Модель:

[Remote("Divisibility", "Account", ErrorMessage = "Value is incorrect.")] 
public int Amount { get; set; } 

Контроллер

[HttpGet] 
public JsonResult Divisibility(int Amount) 
{ 
    var value = User.Identity.GetUserId().Where(x => x.Equals("qqqqq")); 

    return Json(value == null); 
} 
+0

Ничего, в обоих случаях Сетевая консоль в хроме просто пуста. – DiPix

Смежные вопросы