2014-07-12 1 views
0

(난 그냥 ASP.NET MVC (5)를 배우고)paramters를 확인하고 ASP.NET MVC와 클라이언트로 결과를 보내

나는 간단한 일을 수행 할 :

그냥이 개 번호를 수집을 나누기 결과를 반환합니다.

ASP.NET Web Forms에서 웹 양식의 텍스트 상자 컨트롤을 사용하여 클라이언트에서 데이터를 수집합니다. 결과를 계산하고 결과와 함께 다른 웹 컨트롤을 채우고 페이지를 클라이언트에 보냅니다. 나는 내 코드는 지루한 생각 ASP.NET MVC 5.

과 같은 일을하려고

, 더 좋은하거나 다른 방법은 무엇입니까?

컨트롤러 :

public class DivideController : Controller 
{ 
    // 
    // GET: /Divide/ 
    [HttpGet] 
    public ViewResult Divide() 
    { 
     return View(); 
    } 

    [HttpPost] 
    public ViewResult Divide(DivideModel model) 
    { 
     model.Result = model.Arg1/model.Arg2; 
     return View(model); 
    } 
} 

모델 :

public class DivideModel 
{ 
    public float Arg1 { get;set; } 
    public float Arg2 { get;set; } 
    public float Result { get;set; } 
} 

보기 : 당신의 작업이 너무 간단하기 때문에

<body> 
    <div> 
     @using (Html.BeginForm()) 
     { 
      <div>Arg1:</div> 
      <div>@Html.TextBoxFor(x => x.Arg1)</div> 
      <div>Arg2:</div> 
      <div>@Html.TextBoxFor(x => x.Arg2) </div> 
      <input type="submit" value="submit" /> 
     } 
    </div> 

    @if (Model != null) 
    { 
     <div>Result is:</div> 
     <div>@Model.Result</div>  
    } 
</body> 
+1

이것은 완전히 괜찮아 보입니다. 지루한 느낌이 드는 것은 어떨까요? 아마도 누군가 그 질문에 더 잘 대답 할 수 있습니다. –

+0

@JustinHelgerson 입력/출력 매개 변수를 넣는 것만으로 같은 모델 유형이 이상하게 느껴집니다. – smwikipedia

+0

그런 다음 model.Store 결과를 ViewBag에 저장하고보기에 표시하십시오. – malkam

답변

2

그것은 지루한입니다. 많은 것들이 그렇듯이, 좋은 디자인은 유지 보수의 비용을 줄이면서 약간의 오버 헤드를 추가합니다. 이 오버 헤드는 이와 같은 작은 프로그램에서 무의미한 것으로 보입니다.

이 오버 헤드가 발생하는 부분은 관심의 분리가 코드의 다른 부분을 손상시키지 않으면 서 훨씬 쉽게 변경하는 큰 응용 프로그램에 있습니다.

원하는 경우 서버 측 코드를 작성하지 않고 자바 스크립트로이 작업을 완전히 수행 할 수 있습니다. 그러나 당신은 MVC를 배우려고 노력하고 있습니다. 그래서 지금은 이것을 받아 들여야하며, 앞으로 나아갈 좋은 습관을 배우고 배워야합니다.

+0

이것은 질문에 대한 답을 제공하지 않습니다. 비평하거나 저자의 설명을 요청하려면 게시물 아래에 의견을 남겨 둡니다. – Mark

+1

@ 마크 - 질문에 대답합니다. 아마도 결론에 도달하기 전에 모든 것을 읽어야합니다. 마지막 문장은 더 좋고 더 간단한 방법이 없으며 시간 내에 갚을 것이라고 받아 들여야한다고 말합니다. –

관련 문제