2012-07-10 2 views
0

현재 MVC3 프로젝트에서 작업 중입니다. 나는이 부분에 현재 붙어있다.ajax 형식의 특정 ID mvc3을 여러 하이퍼 링크에서 인식합니다.

나는 여러 하이퍼 링크를

@using (Ajax.BeginForm("Click", new AjaxOptions { UpdateTargetId = "showpage" })) 
{ 
    <a href="#" id="0" onclick='document.forms[0].submit()'>Link 0</a> 
    <a href="#" id="1" onclick='document.forms[0].submit()'>Link 1</a> 
} 

이 포함이 아약스 양식을 가지고 내가 there'a 링크를 클릭 할 때마다 발생하는 컨트롤러 "를 클릭하십시오"라는이 기능을 가지고있다.

public ActionResult Click(String id) 
{ 
    // Action here 
} 

그러나 하이퍼 링크 중 하나를 클릭 할 때마다 클릭 기능은 "null"로 id를 수신합니다. 컨트롤러에 입력 할 때 어떤 하이퍼 링크가 클릭되는지 알기를 원합니다. .

: 필요한 도움말 :(

+0

양식을 제출하는 중입니다. 모델 바인더는 "id"라는 이름의 입력을 찾아 메서드에 바인딩합니다. – Nnp

+0

죄송합니다. 더 자세히 설명해 주시겠습니까? 나는 여기 꽤 새롭다. :/ –

+0

여기에서 성취하려는 것은 무엇입니까? – jzm

답변

-1

을 대신 당신이 name 속성 버튼을 제출 사용할 수있는 하이퍼 링크의

@using (Ajax.BeginForm("Click", new AjaxOptions { UpdateTargetId = "showpage" })) 
{ 
    <input type="submit" name="action" value="0" /> 
    <input type="submit" name="action" value="1" /> 
} 

public ActionResult Click(string action, ...) 
{ 
    // Action here 
} 
+0

더 나은 사람들이 이유를 줄 때 그들은 downvotes – VJAI

0

을 내 이해에서, 나는 는이 같은 후 것 같아요 HTML :

<div id="showpage"> 
    </div><br /> 
    @using (Ajax.BeginForm("Click", "", new AjaxOptions { UpdateTargetId = "showpage" }, 
       new { @id = "myAjaxForm" })) 
    { 
     @Html.ActionLink("Link 0", "Click", null, new { @id = "Link0", @data_val = "0", @class = "links" }) 
     @Html.ActionLink("Link 1", "Click", null, new { @id = "Link1", @data_val = "1", @class = "links" }) 
     @Html.Hidden("id", ""); 
    } 

SCRIPT :

<script> 
    $(function() { 
     $('a[class=links]').click(function (e) { 
      e.preventDefault(); 
      $("input#id").val($(this).attr("data-val")); 
      $('form#myAjaxForm').submit(); 
     }); 
    }); 
</script> 

CONTROLLER :

public ActionResult Click() 
    { 
     var m = new MyModel(); 
     return View(m); 
    } 

    [HttpPost] 
    public ActionResult Click(string id) 
    { 
     return Content("ID = " + id, "text/html"); 
    } 

희망이 내가 버튼마다 별도의 양식 (고전 웹폼에있는 반대가 뭔가 사용하도록 추천 할 것입니다

0

하는 데 도움이 당신은 ASP.NET MVC에서 두려워해서는 안됨) 그리고 제출할 의미 상 정확한 요소 인 하이퍼 링크 대신 제출 버튼을 사용하십시오 형태는 :

@using (Ajax.BeginForm("Click", new { id = "0" }, new AjaxOptions { UpdateTargetId = "showpage" })) 
{ 
    <button type="submit" value="Link 0" /> 
} 

@using (Ajax.BeginForm("Click", new { id = "1" }, new AjaxOptions { UpdateTargetId = "showpage" })) 
{ 
    <button type="submit" value="Link 1" /> 
} 

는 이제 Click 작업을 내부에 올바른 ID를 얻을 것이다.

관련 문제