Формат html.В Набор Значений По Умолчанию



вопрос новичка.
У меня есть параметр, передаваемый в представление create. Мне нужно установить имя поля со значением по умолчанию.
@формат HTML.В(модели => модели.Идентификатор)
Мне нужно установить это поле ввода с именем Id со значением по умолчанию, которое передается в представление через actionlink.



Итак, как это поле ввода [email protected] (model => model.Id) -- получить значение по умолчанию.



будет ли работать следующее?? где число 5-это параметр, который я передаю в текстовое поле для установки значения по умолчанию.



@Html.EditorFor(c => c.PropertyName, new { text = "5"; })
511   9  

9 ответов:

чистый способ сделать это-передать новый экземпляр созданного объекта через контроллер:

//GET
public ActionResult CreateNewMyEntity(string default_value)
{
    MyEntity newMyEntity = new MyEntity();
    newMyEntity._propertyValue = default_value;

    return View(newMyEntity);
}

Если вы хотите передать значение по умолчанию через ActionLink

@Html.ActionLink("Create New", "CreateNewMyEntity", new { default_value = "5" })

вот что я нашел:

@Html.TextBoxFor(c => c.Propertyname, new { @Value = "5" })

работает с заглавной V, а не с нижним регистром v (предположение, что значение является ключевым словом, обычно используемым в сеттерах)Нижнее и верхнее значение

@Html.EditorFor(c => c.Propertyname, new { @Value = "5" })

не работает

ваш код в конечном итоге выглядит так, хотя

<input Value="5" id="Propertyname" name="Propertyname" type="text" value="" />

значение и ценность. Не уверен, что мне это понравится.

почему бы просто не проверить действие контроллера, если proprety имеет значение или нет, и если это не просто установить его там в вашей модели представления на ваше значение по умолчанию и позволить ему привязать, чтобы избежать всей этой работы обезьяны в представлении?

лучший вариант, чтобы сделать это в вашем представлении модели, как

public class MyVM
{
   int _propertyValue = 5;//set Default Value here
   public int PropertyName{
       get
       {
          return _propertyValue;   
       }
       set
       {
           _propertyValue = value;
       }
   }
}

тогда на ваш взгляд

@Html.EditorFor(c => c.PropertyName)

будет работать так, как вы этого хотите (если не будет значения по умолчанию)

Это не правильно, чтобы установить значение по умолчанию в поле зрения. Вид должен выполнять работу отображения, не более. Это действие нарушает идеологию паттерна MVC. Поэтому правильное место для установки значений по умолчанию-создать метод класса контроллера.

Я только что сделал это (первый ответ Шади) , и он работает удовольствие:

    public ActionResult Create()
    {
        Article article = new Article();
        article.Active = true;
        article.DatePublished = DateTime.Now;
        ViewData.Model = article;
        return View();
    } 

я мог бы поместить значения по умолчанию в мою модель, как propper MVC addict: (я использую Entity Framework)

    public partial class Article
    {
        public Article()
        {
            Active = true;
            DatePublished = Datetime.Now;
        }
    }

    public ActionResult Create()
    {
        Article article = new Article();
        ViewData.Model = article;
        return View();
    } 

может ли кто-нибудь увидеть какие-либо недостатки в этом?

не @Html.EditorFor() использовать атрибуты, которые вы положили в вашу модель?

[DefaultValue(false)]
public bool TestAccount { get; set; }

засунь его в ViewBag:

:
ViewBag.ProductId = 1;

View:

@Html.TextBoxFor(c => c.Propertyname, new {@Value = ViewBag.ProductId})

в методе конструктора вашего класса модели установите значение по умолчанию все, что вы хотите. Затем в первом действии создайте экземпляр модели и передайте его в свое представление.

    public ActionResult VolunteersAdd()
    {
        VolunteerModel model = new VolunteerModel(); //to set the default values
        return View(model);
    }

    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult VolunteersAdd(VolunteerModel model)
    {


        return View(model);
    }

Это мой рабочий код:

@Html.EditorFor(model => model.PropertyName, new { htmlAttributes = new { @class = "form-control", @Value = "123" } })

моя разница с другими ответами заключается в использовании значения внутри массива htmlAttributes

Comments

    Ничего не найдено.