2012-04-23 43 views
-1

在我當前的網絡應用程序中,我希望允許用戶修改某些自然語言解析設置的某些設置。存儲用戶定義的配置設置以供其他操作使用

但是我很困惑如何通過周圍這些設置 - 用戶會從主頁到設置頁面,並在提交用戶被引導返回到主頁在那裏他們可以愉快地搜索形式。

相關的代碼是:

public ActionResult Settings(Configuration configuration) 
    { 
     TempData["configStructure"] = configurationStructure; 
     return RedirectToAction("ConfigSet", "Home", configuration); 
    } 

和家庭控制器:

public ActionResult ConfigSet(Configuration configuration) 
{    
    return View("Index"); 
} 

我產生了局部視圖:

public PartialViewResult Search(string q) 
{ 
    List<Stuff> results = this.Search(q); 
    return PartialView("SearchResults", results); 
} 

隨着渲染的局部視圖像這樣:

@model MyApp.MySettings.ConfigurationApi 

@if (Model == null) 
{ 
    using (Ajax.BeginForm("Search", "Home", new AjaxOptions 
    { 
     HttpMethod = "GET", 
     InsertionMode = InsertionMode.Replace, 
     UpdateTargetId = "searchResults", 
    })) 
    { 
     <input type="text" name="q" /> 
     <input type="submit" value="Search" /> 
    } 
} 
else 
{ 
    using (Ajax.BeginForm("Search", "Home", new { configuration = Model }, new AjaxOptions 
    { 
     HttpMethod = "GET", 
     InsertionMode = InsertionMode.Replace, 
     UpdateTargetId = "searchResults", 
    })) 
    { 
     <input type="hidden" name="configuration" /> 
     <input type="text" name="searchString" /> 
     <input type="submit" value="Search" /> 
    } 
} 

基本上我很困惑,我怎麼會去有關從設置頁面傳遞這些值到主頁和領帶的設置給該用戶。

回答

1

如果你的用戶進行身份驗證,如果你希望你的用戶具有的設置將在下次他們打你的網站,你應該考慮Asp.Net會員檔案。您也可以選擇將設置存儲在數據庫中。

你必須存儲在會話變量中的對象的選擇,但是這使得一些人生氣。

您還可以將用戶重定向到Home.Index之前存儲在ViewBag設置的選項。您可以在返回視圖之前通過設置ViewBag.Settings = configuration來完成此操作。然後,您可以從您的視圖中訪問@ViewBag.Settings中的設置。請注意,這種方法是有損的,因爲它會轉到其他頁面,並且您已經丟失了設置。

對於未經身份驗證的用戶,會話可能是要走的路。

相關問題