簡體   English   中英

Ajax.BeginForm中的ASP MVC ActionName

[英]ASP MVC ActionName in Ajax.BeginForm

我正在使用Ajax.BeginForm()重載:

(this AjaxHelper, AjaxOptions ajaxOptions):MvcForm

而且一切都很好。

但是現在我需要在<form> -tag中添加一個屬性,因此我需要發送htmlAttributes -ergo我需要使用Ajax.BeginForm()另一個重載。

這是我的問題:使用第一個重載時,我會獲得正確的表單href,但是第二個重載時,我需要傳遞一個ActionName。 我嘗試傳遞真實的ActionName,但收到錯誤的href。 我嘗試傳遞NULL值,但它仍然是錯誤的href(但與我傳遞真實的ActionName(“索引”)時相同)。

我還有其他方法可以用來添加表單屬性或解決此問題的方法嗎? (我當然可以使用JavaScript來添加它,就像我們在90年代所做的那樣,但這是2013年...)

編輯:這是我現在使用的重載,這給了我錯誤的href:

    Ajax.BeginForm("Index",null,new AjaxOptions() { HttpMethod = "POST", 
InsertionMode = InsertionMode.Replace, UpdateTargetId = "myform" }, 
    new { enctype = "multipart/form-data" })

嘗試

@Ajax.BeginForm("Index","YourControllerName",null,new AjaxOptions() { HttpMethod
 ="POST", InsertionMode = InsertionMode.Replace,UpdateTargetId = "myform"}, 
new { enctype = "multipart/form-data" })

這是您想要的過載。

@Ajax.BeginForm("actionName", "controllername", null, ajaxOptions: new AjaxOptions(), htmlAttributes: new Dictionary<string, object>())

指定您的動作和控制器名稱。 然后,您為路由值指定null並傳入其余參數。

請注意,使用參數名稱規范聲明參數僅出於說明目的。 這是此重載的默認順序,因此您無需像我所做的那樣顯式聲明它們。

暫無
暫無

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

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