2012-04-23 2 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. Вы также можете выбрать сохранение настроек в базе данных.

У вас есть возможность хранить объект в переменной сеанса, но это вызывает у некоторых людей сердитый характер.

У вас также есть возможность сохранить настройки в ViewBag перед перенаправлением пользователя на Home.Index. Вы можете сделать это, установив ViewBag.Settings = configuration перед возвратом вида. Затем вы можете получить доступ к настройкам в @ViewBag.Settings из вашего представления. Обратите внимание, что этот метод является потерянным ... как, перейдите на другую страницу, и вы потеряли свои настройки.

Для пользователей, не прошедших проверку подлинности, сеанс может быть способом перехода.