2015-04-03 20 views
0

我使用MVC/ASP.NET如何填充的重定向和觸發按鈕不同的視圖提交

我有兩個觀點,一個顯示基於一組ID項目的列表。另一頁顯示從多個選項生成的各種信息。用戶可以輸入的選項由下拉選擇確定。

View1.aspx

<input type="button" 
     value="View All Details%>" 
     class="button" 
     onclick="window.location = '<%:Url.Action("Index", "Report", new { id = Model.GroupID})%>'" /> 

我能夠成功切換到指定的頁面和頁面的控制器獲取的調用。 Model.GroupID是我需要用來提交新表單的值。

Q1:如何觸發下拉框轉到所需的選定索引,然後使用「Model.GroupID」中的值填充文本框?

的Index.aspx

... 
<% using (Html.BeginForm("Report", "Report", FormMethod.Post, new { id = "some" })) 
{ 
     .... 
     <%: Html.TextBoxFor(model => model.textBox.input, new { id = "textboxID", style = "width:" + Model.textBox.width + "px", maxlength = Model.textBox.maxLength })%> 

     <input type="submit" name="button" value="Find Details" style="width: 180px" /> 
} 

我需要再提交表單,它將調用我的控制器

Controller.cs

[Authorize] 
[HttpPost] 
public ActionResult Report([Bind(Include = "textBox")]Report values) 
{ 
    .... 
} 

Q有從不同的角度直接調用的方法?我不介意創建一個控制器中的單獨的方法既避免結合....

回答

0

觸發一個下拉列表中選擇,你可以做這樣的一個具體項目:

@Html.DropDownListFor(model => model.GroupID, new SelectList((System.Collections.IEnumerable)ViewData["GroupsAvailable"], "Value", "Text", Model.GroupID))

但您還必須通過GroupsAvailableViewData或在您的模型中。

您可以通過ViewData

IEnumerable<SelectListItem> availableGroups = db.Groups .Where(g => g.IsActive) // for example .OrderByDescending(c => c.Id) .Select(c => new SelectListItem { Value = c.Id.ToString(), Text = c.GroupName }); ViewData["GroupsAvailable"] = availableGroups.ToList();

它傳遞這樣的,但在所有你的問題目前還不清楚你想達到回答你的第二個問題是什麼做的。