В моем приложении ASP.Net MVC я пытаюсь передать три аргумента действию, которое выглядит следующим образом:
public ActionResult File(string hash, string eid, string filename)
до вчерашнего дня при вызове этого метода действия у меня был URL, как показано ниже:
{ControllerName} / {ActionName} / {hash} / {eid} / {fileName}
, например, для C1 / A1 / 6CAE9919C0DDDDC49B5E6E6068E7B7A0 / S_FR_EID_002 / ITTTFileDB.p9 * 100 ** Я не хочу менять шаблон маршрута с формата "/" на?(обычный шаблон)
Теперь последнее имя файла параметров идет с именем папки / каталога, как показано ниже:
Folder1 / TestFolder / File1.pdf
и может быть вНа любом уровне в папке я хочу получить полное значение «Folder1 / TestFolder / File1.pdf» внутри аргумента fileName.Поэтому мой новый URL выглядит следующим образом:
C1 / A1 / 6CAE9919C0DDDDC49B5E6E6068E7B7A0 / S_FR_EID_002 / Folder1 / TestFolder / File1.pdf
Маршруты моих проектов настраиваются с использованием перезаписи URL в web.config, напримерниже:
<rewrite>
<rules>
<rule name="RewriteUserFriendlyURL1" stopProcessing="true">
<match url="^content/attachment/([^/]+)/([^/]+)/([^/]+)/?$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="content/attachment/file?hash={R:1}&eid={R:2}&filename={R:3}" logRewrittenUrl="true" />
</rule>
<rule name="RewriteUserFriendlyURL2" stopProcessing="true">
<match url="^content/attachment/([^/]+)/([^/]+)/([^/^]+)$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="content/attachment/file?hash={R:1}&eid={R:2}&filename={R:3}" logRewrittenUrl="true" />
</rule>
</rules>
</rewrite>