2014-05-18 5 views
1

내 문제가 Html.ActionLink합니다.합격 값은

이 내 페이지 코드 :

  <div id="new-skill" class="row"> 
       <label for="Description">Descreva brevemente a sua habilidade:</label> 
       @Html.TextBoxFor(model => model.skill.Description, new { @class = "form-control" }) 

       <label for="Name">Em qual categoria ela está?</label> 
       @Html.TextBoxFor(model => model.skill.Category.Name, new { @class = "form-control" }) 

       <div class="text-center margin-top15"> 

        @Html.ActionLink("Adicionar nova habilidade", "InsertNewSkill", new 
                        { 
                         professionalId = ViewBag.professionalId, 
                         skillDescription = "Test Text", 
                         categoryName = Model.skill.Category.Name 
                         }, new 
                         { 
                          @class = "" 
                         }) 
        </div> 

       </div> 

이 내 InsertNewSkill 방법입니다 :

 public ActionResult InsertNewSkill(int professionalId, string skillDescription, string categoryName) 
     { 
      initBusinessObjects(); 

      var professional = professionalBusiness.GetById(professionalId); 
      var newSkill = new SkillModel { Description = skillDescription, Category = new SkillCategoryModel { Name = categoryName } }; 

      skillBusiness.Insert(newSkill); 
      professional.Skills.Add(newSkill); 

      professionalBusiness.Update(professional); 

      return View(); 
     } 

은 내가 반드시이 (텍스트 상자 값을 보내) 달성 할?

답변

0

jQuery/javascript를 사용하지 않으면 양식을 사용하여 해당 값을 다시 서버로 가져와야합니다. 그렇게 말

@{using(Html.BeginForm("InsertNewSkill", "ControllerName", FormMethod.Get)){ 
    <div id="new-skill" class="row"> 
    <label for="Description">Descreva brevemente a sua habilidade:</label> 
    @Html.TextBoxFor(model => model.skill.Description, new { @class = "form-control" }) 

    <label for="Name">Em qual categoria ela está?</label> 
    @Html.TextBoxFor(model => model.skill.Category.Name, new { @class = "form-control" }) 

    @Html.Hidden("professionalId", ViewBag.professionalId) 

    <div class="text-center margin-top15"> 
     <input type="submit" value="Adicionar nova habilidade"/> 

}} 

, 일반적으로는 서버에 다시이 값을 POST해야하고 새로운 ActionMethod (따라서, 게시물에 대한 약어 PRG는, 리디렉션이 오기)로 리디렉션.

+0

하지만 다른 정보를 게시 한 페이지에서 다른 버튼이는/ 당신은 jQuery를 사용하여 할 수있는 몇 가지 예제가 있습니까? – guisantogui

+0

@guisantogui - 한 페이지에 여러 개의 양식이있을 수 있습니다 ... 다른 양식에서이 필드를 캡처 한 것으로 나타나지 않습니다. 그렇다면 왜 동시에 모든 정보를 처리하지 않을 수 있습니까? (스킬 작성 및 진행중인 다른 작업) 동시에? – Tommy

1

actionLink에 controllerName을 추가 했습니까?

@Html.ActionLink("Adicionar nova habilidade", "InsertNewSkill","CONTROLLER_NAME", new 
      { 
       professionalId = ViewBag.professionalId, 
       skillDescription = "Test Text", 
       categoryName = Model.skill.Category.Name 
       }, new 
       { 
       @class = "" 
       })