[英]MVC 5 pass model from view to controller using actionlink
我想將在視圖中收集的數據作為模型傳遞給控制器。 (因為我的變量太多,所以我只顯示了幾個)
這是我的模特:
public class Arama
{
public string nereden { get; set; }
public int neredenTip { get; set; }
public string nereye { get; set; }
public int nereyeTip { get; set; }
}
這是我的控制器:
public ActionResult UcakArama(Arama arama)
{
return RedirectToAction("Ukn", "U", arama);
}
這是我的看法:
@model kyWeb.Models.Arama
@Styles.Render("~/Content/AramaEkran")
<li class="dyas_li">
<div id="nereden">
<span class="dyas_ttl">3.Çocuk</span>
<div class="smll2-select">
@Html.DropDownListFor(m => m.nereden, new SelectList(new int[] { 2, 3, 4}, 2), new { tabindex = "1", id = "yds" })
</div>
</div>
</li>
<li class="dyas_li">
<div id="nereye">
<span class="dyas_ttl">3.Çocuk</span>
<div class="smll2-select">
@Html.DropDownListFor(m => m.nereye, new SelectList(new int[] { 2, 3, 4}, 2), new { tabindex = "1", id = "yds" })
</div>
</div>
</li>
@Html.ActionLink("ARA", "ucakarama", new { arama = this.Model })
當我調試時,我看到模型變成空的。 我想從html中獲取值並將其傳遞到我的控制器中
您不能使用@Html.ActionLink
因為這會生成GET
請求。 您需要通過以下形式將屬性POST
以發布到控制器操作:
@using (Html.BeginForm())
{
//properties go here
<li class="dyas_li">
<div id="nereden">
<span class="dyas_ttl">3.Çocuk</span>
<div class="smll2-select">
@Html.DropDownListFor(m => m.nereden, new SelectList(new int[] { 2, 3, 4}, 2), new { tabindex = "1", id = "yds" })
</div>
</div>
</li>
//...etc
<input type="submit" value="Submit">
}
您可以使用:
@Ajax.ActionLink("Show",
"Show",
null,
new AjaxOptions { HttpMethod = "GET",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "dialog_window_id",
OnComplete = "your_js_function();" })
@ Ajax.ActionLink需要jQuery AJAX Unobtrusive庫。 您可以通過nuget下載它:
Install-Package Microsoft.jQuery.Unobtrusive.Ajax
然后將此代碼添加到您的視圖:
@Scripts.Render("~/Scripts/jquery.unobtrusive-ajax.min.js")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.