2012-08-16 5 views
0

몇 개의 버튼이있는 간단한 MVC 4 앱을 만들려고합니다. 클릭 할 때 텍스트 값에 하나씩 추가됩니다. 문제는 내가 < 입력> 버튼을 사용할 때입니다. 양식을 제출할 때 텍스트 값을 변경할 수없고 < 버튼을 사용할 때 아무 것도 동작에 전달되지 않습니다.MVC 제출시 버튼 텍스트를 변경하는 방법

나는 초기 ViewData 값의 출처와 현재 버튼의 저장 방법을 컨트롤러가 조회하는 간단한 SQL 데이터베이스를 가지고 있습니다.

또한 여러 형식으로이 작업을 수행하려고합니다. 그러나 한 가지 형식으로 가능하면 이상적입니다.

@using (Ajax.BeginForm("AddOne", "Home", null, new AjaxOptions { UpdateTargetId = "btn-tc-top"}, new { @class = "rectangle-top" })) 
{ 
    <input type="submit" class="button" name="button" id="btn-tc-top" value="@ViewData["ct-t"]"/> 
} 
@using (Ajax.BeginForm("AddOne", "Home", null, new AjaxOptions { UpdateTargetId = "btn-tc-bottom"}, new { @class = "rectangle-bottom" })) 
{ 
     <button type="submit" class="button" name="button" id="btn-tc-bottom">@ViewData["ct-b"]</button> 
} 
+0

설정할 네가 보낸 버튼의 텍스트 ver (액션 메소드에서 반환)? – Shyju

답변

1

당신은 OnSuccess 처리기를 구독 할 수 있습니다 : 다음과 같이 정의 할 수 있습니다

@using (Ajax.BeginForm("AddOne", "Home", new { id = "btn-tc-top" }, new AjaxOptions { OnSuccess = "addSuccess" }, new { @class = "rectangle-top" })) 
{ 
    <input id="btn-tc-top" class="button" type="submit" name="button" value="@ViewData["ct-t"]" /> 
} 
@using (Ajax.BeginForm("AddOne", "Home", new { id = "btn-tc-bottom" }, new AjaxOptions { OnSuccess = "addSuccess" }, new { @class = "rectangle-bottom" })) 
{ 
    <input id="btn-tc-bottom" class="button" type="submit" name="button" value="@ViewData["ct-b"]" /> 
} 

:

function addSuccess(result) { 
    $('#' + result.id).val(result.text); 
} 

및 컨트롤러 :

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     ViewData["ct-t"] = "1"; 
     ViewData["ct-b"] = "2"; 
     return View(); 
    } 

    [HttpPost] 
    public ActionResult AddOne(string id, int button) 
    { 
     return Json(new { id = id, text = button + 1 }); 
    } 
} 
+0

나는 그 일을 너무 많이 할 수 없었다. 정말 자바 스크립트 잘 모르지만 어떻게 스크립트 AddOne ActionResult에 매개 변수를 추가 무엇입니까? – user1134179

+0

'id'와 'button'의 두 매개 변수가 있습니다. 'id'는'Ajax.BeginForm' ('new {id = "btn-tc-top"}'참조)에서 routeValue로 넘겨지며, 버튼 매개 변수는 버튼의 이름이므로 값이 자동으로 제출됩니다. Ajax. helpers가 작업하려면 페이지에'jQuery.js'와'jQuery.unobtrusive-ajax.js' 스크립트를 (순서대로) 포함 시켰는지 확인하십시오. 번들을 사용하고 있다면'@ Scripts.Render ("~/bundles/jquery")'와'@ Scripts.Render ("~/bundles/jqueryval")'를 포함하면된다. –

+0

고맙습니다. – user1134179

관련 문제