ASP.NET MVC - Stop Html.TextBox для добавления точки к атрибуту Name - PullRequest
2 голосов
/ 27 июня 2010

Я довольно новичок в ASP.NET MVC, и у меня возникла проблема с Html.TextBoxFor () - он дает атрибуту name визуализированного ввода точку.

<%= Html.TextBoxFor(m => m.Box.Name, new { id= "txtName" }) %>

отображает следующий HTML-код:

<input type="text" value="" name="Box.Name" id="txtName">

Я использую плагин проверки jQuery для проверки на стороне клиента.Он не может проверить этот ввод из-за точки в Box.Name (вызывает ошибку javascript).

Моя модель выглядит следующим образом:

public class Box {
   [Required(ErrorMessage = "Please enter a name")]
   public string Name { get; set; }
   public int BoxMaterialID { get; set; }
}

МойViewModel выглядит следующим образом:

public class BoxViewModel
{
    public Box Box { get; set; }
    public List<BoxMaterial> BoxMaterial { get; set;}
}

Мой контроллер выглядит следующим образом:

public ActionResult New(FormCollection postData)
{
    Box box = new Box();

    try
    {
        UpdateModel(box, "Box");
        boxService.SaveBox(box);
    }
    catch
    {
        return View(new BoxViewModel(box));
    }

    return RedirectToAction("Index", "Boxes");
}

Проверка на стороне сервера работает подобно очарованию с использованием DataAnnotations на модели.Кажется, единственная проблема, с которой я сталкиваюсь, связана с проверкой на стороне клиента из-за "."в атрибуте имени.

Спасибо за помощь!

Ответы [ 2 ]

6 голосов
/ 27 июня 2010

Точка, добавленная к имени, используется связующим для модели по умолчанию при отправке формы для правильного заполнения модели.Что касается проверки, вы можете установить ее так:

$("#myForm").validate({
    rules: {
        'Box.Name': {
            required: true
        }
    },
    messages: {
        'Box.Name': {
            required: 'some error message'
        }
    }
});
0 голосов
/ 27 июня 2010

Попробуйте также указать атрибут name:

<%= Html.TextBoxFor(m => m.Box.Name, new { id= "txtName", name = "txtName" }) %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...