2016-07-31 7 views
-2

Ich möchte den Eingabewert vom Benutzer, ohne etwas einzureichen, dann möchte ich es durch Ajax-Methode als Parameter zu Aktion Methode übergeben. Ich habe viele Methoden ausprobiert, aber ich konnte keine Lösung finden. HierWie bekomme ich Eingabeformularwert, ohne es zu senden?

ist der Code

<input type="text" id="task" name="task" value="" /> 


       @Ajax.ActionLink("ADD TASK", "show_task",new {task=Request["task"]}, new AjaxOptions 
{ 
    HttpMethod = "POST", 
    UpdateTargetId = "print", 
    InsertionMode = InsertionMode.Replace 

}) 

Hier wird die Controller-Aktion Methode

public ActionResult show_task(string task) 
     { 
      var add_task = new tasks_table(); 
      add_task.task = task; 
      add_task.id = 24; 
      add_task.f_id=10; 
      add_task.date_oftask=DateTime.Now; 

      db.tasks_table.Add(add_task); 
      db.SaveChanges(); 
      var tasks = db.tasks_table.Include(t => t.user_detail); 
      return PartialView("render_tasks",tasks);     

     } 
+0

** Ich möchte den Eingangswert von Benutzer **, wenn Sie es wollen? Sie sollten Ihre Anforderungen kennen. – Shyju

+0

Wenn Benutzer seinen Wert eingeben, dann nach dem Klicken auf AJAX-Methode möchte ich diesen Wert mit AJAX-Methode als Parameter der Aktionsmethode übergeben –

Antwort

0

Da Sie den aktuellen Wert der Textbox möchten, können Sie besser machen Sie es sich mit Ihrem eigenen JavaScript-Code Machen Sie den Ajax-Anruf statt sich auf die Ajax.ActionLink Hilfsmethode zu verlassen.

Ändern Sie also Ihren Ajax.ActionLink-Aufruf zu einer normalen Aktionsverknüpfung.

<input type="text" id="task" name="task" value="" /> 
@Html.ActionLink("Add Task","show_task", null, new {id="addTask"}) 
<div id="print"></div> 

hören nun zum click Ereignisse auf diesem Link, um den Wert des Textfeldes lesen und dass auf den Server senden. Sie können dazu die Methode jQuery $.post verwenden. Im Antwort-Callback können Sie den Inhalt des Druck-Divs mit der Antwort aktualisieren, die von Ihrem Server kommt.

$(function(){ 

    $("a#addTask").click(function(e){ 

    e.preventDefault(); 
    $.post($(this).attr("href"), { task:$("#task").val()},function(res){ 
     $("#print").html(res); 
    }); 

    }); 

}); 
+0

Ich folge Ihren Anweisungen und ich habe die gleiche Sache wie Sie erwähnt, aber wenn ich auf Link geklickt nichts passiert ist. Es klickt nicht. –

+0

Was meinst du es ist nicht klicken? hast du irgendwelche js fehler? Öffnen Sie Ihre Browser-Konsole und sehen Sie, ob ein Server-Aufruf (oder Fehler) gemacht wird – Shyju

0

können Sie JavaScript focusOut Funktion den Wert an die Steuerung zu senden. von focusOut Methode, erhalten wir den Wert im Eingabefeld sofort, wenn wir zum nächsten Feld bewegt.

$('#task').focusOut(function(){ 
    Your ajax call method.... 
}); 

Hofft es hilft.

Verwandte Themen