2013-12-17 1 views
0

이 데이터가 필요한 다른보기 페이지로 보내야하는 특정보기 페이지 (사용자로부터 수집 한)에 데이터가 있습니다. 지금은 사용할 수 있습니다 : - 자바 스크립트의
1. 포스트 방법 (JQuery와)asp.net에서보기 사이에 POST 방법으로 데이터를 전달합니다.

$().redirect('/Events/Create', {'arg1': 'value1', 'arg2': 'value2'}); 

또는

  1. 양식을 -

$ ('#의 inset_form') .html ('< 양식 동작 = "/ 이벤트/만들기" 메서드 "게시"스타일 = "표시 : 없음;"> < 입력 유형 = "텍스트"이름 = "lat" 값 = "' + 위도 + ' "/> </form>');

document.forms [ 'vote']. submit();

내 질문은 어떤 방법을 선택해야합니까?

는 또한, '/ 이벤트/만들기'페이지는 다음과 같은 방법으로 형식은 다음과 같습니다 -

@using (Html.BeginForm()) { 
    @Html.AntiForgeryToken() 
    @Html.ValidationSummary(true) 
    <div class="editor-label"> 
     @Html.LabelFor(model => model.lat) 
    </div> 
    <div class="editor-field"> 
     @Html.EditorFor(model => model.lat)---------> THIS field accepts the POSTed data 
     @Html.ValidationMessageFor(model => model.lat) 
    </div> 

    <div> 
     ....OTHER INPUT FIELDS..... 
    </div> 

    <p> 
     <input type="submit" value="Create" /> 
    </p> 
} 

그래서, 내 다음 질문은 내가 @Html에 의해 생성 된 텍스트 상자 '위도'를해야합니까 방법이다. Form의 EditorFor는 게시 된 데이터를 기본값으로 표시합니다. 그런 다음 다른 필드를 채운 다음 양식을 제출할 수 있습니다.

답변

0

HTTP 표준에 따라 호출이 웹 사이트 (데이터)의 상태를 변경하지 않는 경우 GET 요청을 사용해야합니다. 즉,/Events/Create 페이지에서 양식을 채우기 위해 적절한 쿼리 문자열을 포함하는 링크를 사용자에게 제공해야 함을 의미합니다.

또한 MVC에서보기간에 데이터를 보내지 않습니다. 모든 것이 컨트롤러 동작을 거치므로 "이벤트"컨트롤러의 "만들기"작업이 양식 제출을위한 적절한 인수를 허용하는지 확인하십시오. 뷰를 렌더링 할 때 Model.lat 변수에 값이 있으면 텍스트 상자에 해당 값이 미리 채워집니다.

0

왜 데이터를 두 번째 형식으로 POST 하시겠습니까? 양식을 표시하고 기본값으로로드하려면 양식에 대한 GET 조치 메소드를 작성하고 URL에 기본값을 전달하십시오. 같은 뷰에서 두 가지 POST 메서드를 사용하는 것을 막을 수는 없지만 일반적인 방법은 GET을 사용하여 폼을로드 한 다음 편집 후에 POST로 데이터를 다시로드하는 것입니다.

[HttpGet] 
public ActionResult Create(string lat) 
{ 
    MyView view = new MyView(); 
    view.lat = lat; 
    View(view); 
} 

[HttpPost] 
public ActionResult Create(MyView view) 
{ 
    //process posted data after editing 
} 

여기서 view 객체는 양식에서 편집 할 데이터의 속성을 포함하는 ViewModel 클래스입니다. View를이 ViewModel 형에 강하게 입력합니다.

(위)하여 jQuery를에서 GET 메소드를 호출하려면

window.location = "Events/Create?lat=myValue"; 
+0

@ 폴 ... 나는 기본적으로 무엇을 의미하는지 형태의 필드 (즉, 위도가)에 대한 사용자의 작용에 의해 결정된다이었다 특정 페이지 ... 일을 분명히하기 위해 여기 lat는 사용자가지도에서 클릭하는 위치의 위도 값 인 위도입니다 ... 따라서 '기본값'은 잘못된 이름 일 수 있습니다 – avinash

+0

@avinash, 나는 당신이 무엇을 의미하는지 이해했다고 생각합니다 . 사용자가지도를 클릭 한 페이지에서 작성보기로 lat 값을 전달하려고합니다. 내 솔루션이 그렇게 할 것입니다. –

관련 문제