음,이 과잉 들릴지 모르지만, 나는 B로 갈 것 oth 솔루션. 프리젠 테이션 관점에서 자바 스크립트 스크립트 코드를 올바르게 작성하려면 서버 코드가 필요하다.
클라이언트 측 유효성 검사 만 구현하는 경우 브라우저에 javascript가 지원되지 않거나 방금 비활성화 된 경우 시스템이 어떻게 작동할까요? 당연히 당신은
OTOH, 당신은 당신이 클라이언트 측 기능을 얘기하고 있다는 추가 한 경우 ...
을 최고의 사용자 경험을 제공하는 방법과 당신의 의심에 대한 것입니다 ... 자바 스크립트 지원을받을 수 없어 ASP.NET MVC에서는 서버 측 유효성 검사를 쉽게 수행 할 수 있습니다.로드시 게시 중에 읽은 것과 동일한 ViewData 항목/ViewModel 속성 만 설정하면됩니다.
그럼 전체 솔루션에 대해 이야기 해 보겠습니다.
다시 말해서 내가 필요한 것을 이해했는지 확실하지 않습니다. 당신은 라디오 버튼에 대해서 이야기하고 있습니다, 그러나 당신은 또한 당신이 그것들을 개별적으로 제어 할 수 있다고 생각하는 것 같습니다 (많은 라디오는 많은 분야에 묶여 있습니다). 일반적으로 그렇지 않습니다. 라디오 버튼 그룹은 일반적으로 동일한 필드에 바인딩되며, 각 라디오 버튼은 다른 값을 의미합니다 (단일 드롭 다운 목록과 동일 함). 기본 값으로, 이것은 하나의 컨트롤러 매개 변수 favColor
에 바인딩됩니다
<% using(Html.BeginForm("HandleForm", "Home")) { %>
Select your favorite color:<br />
<%= Html.RadioButton("favColor", "Blue", true, new { id = "rbColorBlue", class = "favColor" }) %> Blue <br />
<%= Html.RadioButton("favColor", "Purple", false, new { id = "rbColorPurple", class = "favColor" })%> Purple <br />
<%= Html.RadioButton("favColor", "Red", false, new { id = "rbColorRed", class = "favColor" })%> Red <br />
<%= Html.RadioButton("favColor", "Orange", false, new { id = "rbColorOrange", class = "favColor" })%> Orange <br />
<%= Html.RadioButton("favColor", "Yellow", false, new { id = "rbColorYellow", class = "favColor" })%> Yellow <br />
<%= Html.RadioButton("favColor", "Brown", false, new { id = "rbColorBrown", class = "favColor" })%> Brown <br />
<%= Html.RadioButton("favColor", "Green", false, new { id = "rbColorGreen", class = "favColor" })%> Green
<%= Html.RadioButton("favColor", "Other", false, new { id = "rbColorOther", class = "favColor" })%> Other
<div id="divOtherColorText" style="display: block">
Describe the color you want here:<br />
<%=Html.TextArea("otherColorText", new { id = "taOtherColor" }) %><br />
</div>
<% } %>
: 물론, 같은 방식으로 행동해야합니다 데이터베이스를 의미하지...
이 예제를 참조하십시오 않습니다 "파란색". 편의상, 우리는 각 라디오 버튼 (rbColorBlue
, rbColorGreen
등등)에 대해 다른 클라이언트 측 ID를 할당하고 있음을 확인하십시오. 즉, 서버 측 컨트롤러에 단일 값을 나타내는 경우 라하더라도 jQuery 코드에서 각 라디오 버튼을 개별적으로 처리 할 수 있습니다. 서버 측 코드에 대해 이야기
, 즉 작업이 모양을하는 방법은 다음과 같습니다
public class HomeController : Controller
{
public ActionResult HandleForm(string favColor, string otherColorText)
{
// Add action logic here
// If you want to have a separated field for your database,
// just do something like that:
MyDbFacade.BlueColorField = (favColor == "Blue");
MyDbFacade.GreenColorField = (favColor == "Green");
...
return View();
}
}
(물론, 당신은 또한 뷰 모델과 함께 일할 수있는,하지만 난 여기에 해당 옵션에 대해 얘기하지 것이다.)
위로 클라이언트 쪽. 사용자가 rbColorOther
라디오 버튼을 선택하지 않는 한 taOtherColor
을 표시하지 않으려한다고 가정 해 보겠습니다. jQuery 코드는 다음과 같습니다.
$(document).ready(function() {
// If user selects any radiobutton:
if ($('#rbColorOther:checked').length > 0) {
$("#divOtherColorText").show();
} else {
$("#divOtherColorText").hide();
}
});
나는 그렇게 생각합니다. 내가 뭔가를 놓쳤다면 알려주세요. :-)
나는 구두점을 거의 사용하지 않았기 때문에 정말로 이해할 수 없었다. 내가 의미하는 바를 고칠 수 있다면 더 좋을 것이다. – rsenna
@rsenna 내가 할 수있는 일은 공간을 조금 더 넓혀서 이것이 더 좋기를 바랍니다. – Myzifer
@rsenna : 어떤 아이디어 나 해결책이 있습니까? – Myzifer