2012-01-01 5 views
0

Позвольте мне описать код, который у меня есть, и затем задаю вопрос.ASP.NET MVC3, коллекция внутри модели с использованием форм GET метод и URL/SEO дружественные

У меня есть такой класс

public class MyModel 
{ 
    public virtual ICollection<SomeObject> fweek { get; set; } 
    public virtual ICollection<SomeObject> ftxt { get; set; } 
    public virtual ICollection<SomeObject> fbool { get; set; } 
} 

Затем я создаю редактор для такой модели:

@model MyModel 
@using(Html.BeginForm("SomeAction", "SomeController", FormMethod.GET)) 
{ 
    @Html.EditorFor(m => m.fweek) 
    @Html.EditorFor(m => m.ftxt) 
    @Html.EditorFor(m => m.fbool) 
    <input type="submit" value="Submit" /> 
} 

Если я представить свою форму в результате я перенаправлены на аналогичный URL:

http://localhost:3517/pl-PL/Places/Search? 
fbool%5B0%5D.Value=false& 
fweek%5B0%5D.Value=1& 
fweek%5B1%5D.Value=2& 
ftxt%5B0%5D.Value=23fasf& 
ftxt%5B1%5D.Value=assffg& 

Вопрос: Можно ли переписать такой URL (особенно% 5B и % 5D), чтобы стать более оптимизированным для SEO/Дружественного пользователя? Допустим, этот пример URL может выглядеть следующим образом:

http://localhost:3517/pl-PL/Places/Search? 
fbool.Value=false& 
fweek.Value=1& 
fweek.Value=2& 
ftxt.Value=23fasf& 
ftxt.Value=assffg& 

Спасибо за любую помощь. С уважением.

+0

Мне не удалось воспроизвести этот сценарий. Я вырезал/вставил ваш код, добавив класс SomeObject с единственным значением «Значение» в качестве строки, выведенным из вашего примера URL. Html.EditorFor не создал HTML, и я не перенаправлялся ни на какой URL, так как вы пришли к этому? – enorl76

ответ

0
http://localhost:3517/pl-PL/Places/Search? 
fbool.Value=false& 
fweek.Value=1& 
fweek.Value=2& 
ftxt.Value=23fasf& 
ftxt.Value=assffg& 

Это не сработает ни в одном сценарии, потому что вы отправляете несколько полей формы с тем же именем, поэтому им нужно иметь индекс, связанный с ними. И.Е.

fweek[0].Value=1&fweek[1].Value =2 

Без индекса, как вы можете определить, какие fweek есть что?

Почему бы не просто разместить эту форму?

+0

Определение того, какой 'fweek' является несущественным, потому что это неупорядоченный набор некоторых значений ... Мне нужно укоротить и украсить этот URL. Так что, возможно, есть способ сделать это (возможно, опустить суффикс '.Value' без изменения объявления объекта' fweek')? –