簡體   English   中英

JS從文本框中獲取文本,傳遞給asp.net mvc ActionResult,但ActionResult參數顯示為null

[英]JS grabbing text from text-boxes, passing to asp.net mvc ActionResult but ActionResult parameters appear null

JS從文本框中獲取文本,傳遞給asp.net mvc ActionResult,但ActionResult參數顯示為null

我有2個文本框,由用戶選擇時由2個日期選擇器填充,但是當我使用下面的javascript將其傳遞給actionresult時,雖然信息可以正確地從文本框中獲取。 actionresult的參數顯示為空。

我該如何解決?

碼:

@Html.Label("Start", "Start Date:")
@Html.TextBox("Start", string.Empty, new {@id = "Start", @class = "datepicker"})
@Html.Label("endd", "End Date:")
@Html.TextBox("endd", string.Empty, new {@id = "End", @class = "datepicker"})
<input type="submit" value="Apply" id ="DateSelected" />


<script type="text/javascript">
  $('.datepicker').datepicker();
$("#DateSelected").click(function () {
        var startD = $('#Start').val().toString();
        var endD = $('#End').val().toString();
                $.ajax({
                url: '/Docs/FirstDoc',
                type: "Post",
                data: { start: String.valueOf(startD), end: String.valueOf(endD) },
            });
</script>

行動結果:

    [HttpPost]
    public ActionResult FirstDoc(string start, string end)
    {
        FirstDocModel firstDocModel = FirstDocHelper.RunFunction(start, end);
        return PartialView(firstDocModel);
    }

這就是我的意思-但首先,我個人還是覺得Ajax與MVC控制器的綁定有時很痛苦。 它很靈活,但是,如果有什么不合時宜的地方,您就會得到null-如您所知。 無論如何...

[HttpPost]
    public ActionResult FirstDoc(MyObject inputObj)
    {
       //use inputObj here as needed
    }

然后,您需要為MyObject定義-使其簡單

public class MyObject{
    string start {get;set;}
    string end {get;set;}
}

如果所有鴨子都排成一排,當然包括ajax一側的選項,則對象“應該”綁定。

您傳遞data方式適用於type: 'get'但不適用於post 嘗試這個:

data: JSON.stringify({ start: startD, end: endD }),

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM