programing

Html.TextBoxFor로 기본값을 설정하는 방법은 무엇입니까?

new-time 2020. 5. 11. 22:02
반응형

Html.TextBoxFor로 기본값을 설정하는 방법은 무엇입니까?


간단한 질문은 ASP.NET MVC Framework 1의 Html Helper를 사용하는 경우 overload가 있기 때문에 텍스트 상자에서 기본값을 설정하는 것이 쉽습니다

Html.TextBox(string name, object value)

.

Html.TextBoxFor

메서드를 사용하려고 시도했을 때 첫 번째 추측은 작동하지 않는 다음을 시도하는 것입니다.

<%: Html.TextBoxFor(x => x.Age, new { value = "0"}) %>

지금은 Html.TextBox (string, object)를 고수해야합니까?


당신은 이것을 시도 할 수 있습니다

<%= Html.TextBoxFor(x => x.Age, new { @Value = "0"}) %>

MVC3 및 MVC4에서 작동합니다.

 @Html.TextBoxFor(m => m.Age, new { @Value = "12" }) 

숨겨진 필드가 되길 원한다면

 @Html.TextBoxFor(m => m.Age, new { @Value = "12",@type="hidden" }) 

컨트롤러 내에서 View 메소드에 모델을 지정하지 않으면 기본값으로 객체를 생성하지 않습니다.

[AcceptVerbs(HttpVerbs.Get)]
public ViewResult Create()
{
  // Loads default values
  Instructor i = new Instructor();
  return View("Create", i);
}

[AcceptVerbs(HttpVerbs.Get)]
public ViewResult Create()
{
  // Does not load default values from instructor
  return View("Create");
}

기본값은 귀하의

Model.Age

재산 가치입니다 . 그것은 요점의 종류입니다.


간단하게 할 수 있습니다 :

<%= Html.TextBoxFor(x => x.Age, new { @Value = "0"}) %>

또는 모델이 null 인 경우, 예를 들어 편집과 작성 모두에 대해 동일한보기가있는 경우 기본값 '0'으로 전환됩니다.

@Html.TextBoxFor(x => x.Age, new { @Value = (Model==null) ? "0" : Model.Age.ToString() })


value = "0"은 @ Html.TextBox에 대한 기본 값을 설정합니다.대소 문자를 구분하는 "v"는 대문자 여야합니다아래는 실제 예입니다.

@Html.TextBoxFor(m => m.Nights, 
    new { @min = "1", @max = "10", @type = "number", @id = "Nights", @name = "Nights", Value = "1" })

이것은 나를 위해 작동

@Html.TextBoxFor(model => model.Age, htmlAttributes: new { @Value = "" })

사용

@Value

은 다음과 같은 두 가지 속성을 출력하기 때문에 해킹입니다.

<input type="..." Value="foo" value=""/>

대신이 작업을 수행해야합니다.

@Html.TextBox(Html.NameFor(p => p.FirstName).ToString(), "foo")

내가 해결 한 방법은 다음과 같습니다. 편집에도이 기능을 사용하면 작동합니다.

@Html.TextBoxFor(m => m.Age, new { Value = Model.Age.ToString() ?? "0" })

이것은 나를 위해 일했습니다.이 방법으로 우리는 기본값을 빈 문자열로 설정합니다

@Html.TextBoxFor(m => m.Id, new { @Value = "" })

편집과 추가 모두에 대한 부분 페이지 양식이 있으면 기본값으로 사용하는 트릭

0

은 다음을 수행하는 것입니다.

@Html.TextBox("Age", Model.Age ?? 0)

그렇게

0

하면 설정되지 않은 경우 또는 실제 나이 (있는 경우)가됩니다.


이것도 시도해보십시오. 새 {}를 제거하고 문자열로 바꾸십시오.

<%: Html.TextBoxFor(x => x.Age,"0") %>

참고 URL :

https://stackoverflow.com/questions/3034986/how-to-set-a-default-value-with-html-textboxfor

반응형