Html.EditorFor 기본값 설정
신인 질문. 매개 변수가 작성보기에 전달되었습니다. 기본값으로 필드 이름을 설정해야합니다. @ Html.EditorFor (model => model.Id) Id라는 이름으로이 입력 필드를 액션 링크를 통해 뷰에 전달되는 기본값으로 설정해야합니다.
따라서이 입력 필드-@ Html.EditorFor (model => model.Id)-기본값으로 설정하려면 어떻게해야합니까?
다음이 작동할까요 ?? 숫자 5가 매개 변수 인 경우 텍스트 필드에 전달하여 기본값을 설정합니다.
@Html.EditorFor(c => c.PropertyName, new { text = "5"; })
이를위한 깨끗한 방법은 생성 된 엔티티의 새 인스턴스를 컨트롤러를 통해 전달하는 것입니다.
//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로 작동합니다 (값이 일반적으로 setter에서 사용되는 키워드라는 가정). 하한 대 상한 값
@Html.EditorFor(c => c.Propertyname, new { @Value = "5" })
작동하지 않는다
귀하의 코드는 결국 다음과 같이 보입니다.
<input Value="5" id="Propertyname" name="Propertyname" type="text" value="" />
가치 대 가치. 내가 너무 좋아할지 모르겠다.
속성에 값이 있는지 여부와 뷰 모델에서 기본값으로 설정하지 않은 경우 컨트롤러 동작을 확인하고이 모든 원숭이가 뷰에서 작동하지 않도록 바인딩하도록하는 것이 어떻습니까?
보기에서 기본값을 설정하는 것은 옳지 않습니다. View는 그 이상이 아닌 디스플레이 작업을 수행해야합니다. 이 행동은 MVC 패턴의 이데올로기를 깨뜨립니다. 따라서 기본값을 설정하는 올바른 위치-컨트롤러 클래스의 메서드를 만듭니다.
더 나은 옵션은 다음과 같은 뷰 모델에서 수행하는 것입니다.
public class MyVM
{
int _propertyValue = 5;//set Default Value here
public int PropertyName{
get
{
return _propertyValue;
}
set
{
_propertyValue = value;
}
}
}
그런 다음 당신의 관점에서
@Html.EditorFor(c => c.PropertyName)
원하는 방식으로 작동합니다 (값 기본값이 없으면)
나는 방금 이것을 (Shadi의 첫 번째 대답)했고 그것은 대우를 작동합니다.
public ActionResult Create()
{
Article article = new Article();
article.Active = true;
article.DatePublished = DateTime.Now;
ViewData.Model = article;
return View();
}
적절한 MVC 중독자처럼 내 모델에 기본값을 넣을 수 있습니다. (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;
전망:
@Html.TextBoxFor(c => c.Propertyname, new {@Value = ViewBag.ProductId})
이것은 나를 위해 일했습니다.
Controlle에서
ViewBag.AAA = default_Value ;
보기에서
@Html.EditorFor(model => model.AAA, new { htmlAttributes = new { @Value = ViewBag.AAA } }
모델 클래스의 생성자 메서드에서 원하는대로 기본값을 설정합니다. 그런 다음 첫 번째 작업에서 모델의 인스턴스를 만들고 뷰에 전달합니다.
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 배열 내부의 값을 사용하는 것입니다.
이것은 나를 위해 일했습니다.
컨트롤러에서
*ViewBag.DefaultValue= "Default Value";*
보기에서
*@Html.EditorFor(model => model.PropertyName, new { htmlAttributes = new { @class = "form-control", @placeholder = "Enter a Value", @Value = ViewBag.DefaultValue} })*
참고 URL : https://stackoverflow.com/questions/6062528/html-editorfor-set-default-value
'Nice programing' 카테고리의 다른 글
입력 스트림을 출력 스트림에 연결 (0) | 2020.10.25 |
---|---|
Eclipse의 초보자, "동적 웹 프로젝트"가 없습니다. Linux Ubuntu에 있습니다. (0) | 2020.10.25 |
Golang : 인쇄 할 때 숫자를 0으로 채우는 방법은 무엇입니까? (0) | 2020.10.25 |
UILabel 높이를 동적으로 계산하는 방법은 무엇입니까? (0) | 2020.10.25 |
순수 CSS 닫기 버튼 (0) | 2020.10.25 |