Используйте Routing для значения. Поэтому, если вам нужно изменить идентификатор, вы можете использовать другой URL или опубликовать его в качестве параметра.
Всякий раз, когда вам нужно значение, просто спросите его у ValueProvider.
В случае, если он пуст - используйте тот из профиля пользователя.
Конечно, вам лучше написать небольшой метод, который сделает именно это:
// Register route like:
route.MapRoute("ProvidesAccountId", "{controller}/{id}/account{accountId}/{action}.aspx")
// Property on the base controller
protected Account CurrentAccount {
get {
var accountId = ValueProvider.GetValue<int?>("accountId"); // GetValue is just a helper
if (accountId.HasValue)
return YourRepositor.GetAccountBy(accountId.Value);
return CurrentUser.Account;
}
}
Чтобы не использовать учетную запись текущего пользователя, нажмите URL: Профиль / 123 / account / Edit.aspx
Чтобы использовать другую учетную запись, вы можете нажать на URL: Профиль / 123 / account-456 / Edit.aspx
Вы поняли идею.
Приветствия
Дмитрий.