2012-09-13 79 views
0

即時通訊新的asp.net mvc3。我有一個要求,我張貼表單到一個URL說「www.abc.com/asa」。我已經向我的應用程序添加了一個提交按鈕。但每次我點擊按鈕,表單都會被提交給相應的控制器。我如何發佈到我所需的網址?如何將表單發佈到asp .net mvc3中的u​​rl?

+2

的可能的複製http://stackoverflow.com/questions/1965103/html-beginform-with-an-absolute-url – Manatherin

+0

我覺得這裏你最好的選擇是要麼通過jQuery作爲劫持的形式後您總是需要按照約定通過控制器進行路由,否則您將取消操作名稱和控制器參數。 Manatherin上面的評論給出了這個解決方案的必要指針 –

回答

1

通常在MVC中,我們按照以下約定:

[httpGet] //default not to mention 
public ActionResult Index() 
{ 
    // Todo code here 
} 

[httpPost] 
public ActionResult Index(FormCollection collection) 
{ 
    // Form submit here, all form data available here 
} 

但在你的情況,你可能會寫在你的看法如下:

@using (Html.BeginForm("ActionName", "Controller", "FormMethod", "HTML Attributes")) 
{ 
    // Here Controller: it defines whose actionmethod need to be called when form get submitted. 
} 

EX:

@using(Html.BeginForm(null, null, FormMethod.Post, new {@action="http://www.abc.com/asa"}) 
{ 
} 
+0

darshin - 重讀OP。他明確提到他不想對控制器進行傳統的呼叫。我沒有標記你,因爲這是你的一個真正的錯誤,但我肯定你會成爲,除非你編輯你的答案 –

+0

@jimtollan:編輯了答案,如果它有錯誤請發表評論。並感謝引起我的注意。 – 2012-09-13 09:39:35

+0

darshin - 你自己+1編輯:) –

0

在這種情況下,我會建議使用標準的html <form />標籤,並在action parametert中使用相應的url呃。

BeginForm幫助程序始終將操作和控制器作爲參數 - 不能使用標準參數。

如果你想要你也可以定義你自己的幫手。我會這樣做,如果這是一個更大的應用程序,你會多次使用它。

0
<form action="www.abc.com/asa" method="POST"> 
    <legend> 
    Foo 
    </legend> 
    <fieldset> 
     <p>Fields</p> 
    </fieldset> 

    <input type="submit" name"submitForm" value="submitForm" /> 
</form>