簡體   English   中英

在部分視圖razor mvc中設置文本框的值

[英]set value for a textbox in partial view razor mvc

我有以下場景:

我的索引頁面使用的布局中包含部分視圖。 局部視圖包含搜索文本框。

對於特定場景,我需要使用我的viewdata []為索引頁面設置搜索框的文本。

是不是在某種程度上poosiblein mvc3,asp.net 2010在視圖頁面的局部視圖中設置文本框的值?

您可以將部分強類型設置為某個視圖模型:

@model SearchViewModel
@using (Html.BeginForm())
{
    @Html.LabelFor(x => x.Keywords)
    @Html.EditorFor(x => x.Keywords)
    <button type="submit">OK</button>
}

然后在插入部分時,您可以傳遞此視圖模型:

@Html.Partial("_Search", new SearchViewModel { Keywords = "some initial value" })

或者甚至更好的主視圖的視圖模型已經具有SearchViewModel類型的屬性,您將能夠像這樣調用部分:

@Html.Partial("_Search", Model.Search)

現在顯然在您的Index操作中,您不再需要使用任何ViewData,但您可以直接使用強類型視圖模型:

public ActionResult Index()
{
    var model = new MyViewModel
    {
        Search = new SearchViewModel
        {
            Keywords = "some initial value"
        }
    };
    return View(model);
}

您始終可以強制鍵入部分視圖(即使模型只是一個字符串)並傳遞您需要的值。

public class MyModel
{
    public int ValueForView {get;set;}
    public string TextBoxValue {get;set;}
}

-Index.cshtml

@model MyModel

@{ Html.RenderPartial("PartialView", Model.TextBoxValue); }

-PartialView.cshtml

@model string

@Html.TextBoxFor(m => Model)

據我了解您的問題,部分視圖位於您的布局中,您需要將數據輸入其中。

在這種情況下,布局最后處理但是將數據傳遞給它,您的選項有些限制。 您可以使用ActinFilter或ViewData。 ViewData是最簡單的,也是最混亂的,所以我不推薦它。

ActionFilters可以工作,但你可以通過簡單地調用你的布局來處理你的部分:


 @Html.RenderAction("PartialViewAction", "PartialViewController")

除非我遺漏了一些東西,否則我不相信其他答案會解決這個問題,因為這是一個不同的問題。

暫無
暫無

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

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