我有一個MVC5應用程序,我有這樣的定義的視圖模式:如何將輸入作爲參數提供給MVC5中的操作方法?
public class RequestViewModel
{
[Required(ErrorMessage = "Please select a state")]
[Display(Name = "State")]
public int StateID { get; set; }
[Required(ErrorMessage = "Please enter a zip code")]
[Display(Name = "Zip")]
public string ZipCode { get; set; }
[Required(ErrorMessage = "Please choose a service")]
[Display(Name = "Service")]
public string ServiceName { get; set; }
public byte[] ImageData { get; set; }
public string ImageMimeType { get; set; }
public byte[] VideoData { get; set; }
public string VideoMimeType { get; set; }
}
我打電話這個視圖模型,從這樣的定義的操作:
public ActionResult ServiceRequest(RequestViewModel rvm, HttpPostedFileBase image = null, HttpPostedFileBase video = null)
{
...
}
因此,要點是,在我的_Layout.cshtml文件中,我有兩個輸入字段和一個「a href」,事情是當某人按下包含href的對象時,我想要輸入這兩個字段,並調用上述行動方法。這是來自我的_Layout.cshtml的部分。
<div class="input-top">
<a href='@Url.Action("ServiceRequest", "Home", new { rvm.ZipCode = homeZipCode, rvm.ServiceName = homeService })'><img src="~/Content/img/GOBtn.png" class="gobtn-position"></a>
<input id="homeZipCode" type="text" class="form-control input-position-2" placeholder="ZIP">
<input id="homeService" type="text" class="form-control input-position-1" placeholder="What do you need done today?">
</div>
我寫了這樣一個代碼,但它顯示了我的錯誤在新{ rvm.ZipCode = homeZipCode, rvm.ServiceName = homeService }
的一部分,我可以看到的一點是,RVM是不是在我_Layout.cshtml文件的任何地方定義,因此,它無法解析ZipCode和ServiceName屬性。任何想法,我如何將這兩個輸入字段的值傳遞給我的操作方法?
'ServiceRequest()'GET或POST? – 2014-10-06 11:44:33
我有該操作方法的GET和POST版本。 – tett 2014-10-06 13:35:49
一個動作鏈接是一個GET,但你已經包含了你的POST方法。您的GET方法'公衆的ActionResult ServiceRequest(字符串homeZipCode,字符串homeService)'? – 2014-10-06 20:29:48