10/10/2018, 09:38

mới làm quen asp, nhờ các pac giúp đỡ.

Mình trước chỉ làm php, giờ chuyển sang asp thấy khó quá, mình ví dụ bên php mình có đoạn code sau

Code:
<?
if($p==""){
  include "inc-ok/home.php";
}
else {
       if($p=="register" || $p=="dologin" || $p=="forgetpass" || $p=="cpass" || $p=="products" || $p=="buy"){
	  include "inc-ok/".$p.".php";
     }
       else{
	 include "inc-ok/home.php";
       }
}
?>
đoạn code trên nghĩa là tùy theo giá trị của p trên url mà nó sẽ include các file tương tứng trong folder inc-ok, giờ bên asp mình cũng có nhu cầu tương tụ nhưng ko biết làm kiểu gì, cụ thẻ mình muốn như sau:

- ví dụ link là http://domain.com/?p=
+ nếu p ko có gì thì include file home.asp trong folder inc
+ nếu p=abc thì include file abc.asp trong folder inc
+ nếu trong folder inc ko có file abc.asp thì include file home.asp (kiểu như http://domain.com/?p=jdakdakdk thì load trang mặc định ấy mà, còn ko http://domain.com/?p=login thì include file /inc/login.asp, http://domain.com/?p=logout thì file /inc/login.asp, ......)

pac nào có kinh nghiệm thì giúp mình nhé.
THanks
sacroyant viết 11:43 ngày 10/10/2018
Bác thử viết thế này xem được không :


PHP Code:
<%
Dim pfsdrpagepath

p
=Request.QueryString("p")
path="/inc/"
page path "home.asp"

Set fs CreateObject("Scripting.FileSystemObject")
Set dr Server.MapPath(path)


If 
p<>"" Then 
    
If fs.FileExists(dr ".asp")=true Then
        page
path ".asp"
   
End If
End If

%>

<!--
#include virtual="<%page%>"--> 
tungoso viết 11:44 ngày 10/10/2018
hic, ko đc pac ạ , mình google thi tìm đc thông tin là ASP does not support dynamic includes (variable) by <!--#include--> tag , nghĩa là cái <%page%> ko hoạt động trong <!--#include virtual="<%page%>"-->
vậy chẳng lẽ ko có cách nào để làm như bên php sao ? .
sacroyant viết 11:43 ngày 10/10/2018
Vậy thì bác có thể read nội dung file muốn chèn và đặt nội dung trong ấy vào trang chính
amas viết 11:40 ngày 10/10/2018
Chào bạn! Phương pháp lập trình web bên asp.net khác hoàn toàn với php. Nếu bạn code như php thì hiệu quả không cao.
Còn câu hỏi của bạn , mình xin được gợi ý như sau :
- Tạo 1 master page. Cái này chứa giao diện chính của website.
- Các trang còn lại thì khai báo cái master page này vào đầu trang là được.
Rồi code cho từng trang
Vì vậy khi gọi các trang như login,register,... thì khi hiển thị thì bao gồm cả trang giao diện (master page) và nội dung của các trang con.
tungoso viết 11:50 ngày 10/10/2018
Được gửi bởi amas
Chào bạn! Phương pháp lập trình web bên asp.net khác hoàn toàn với php. Nếu bạn code như php thì hiệu quả không cao.
Còn câu hỏi của bạn , mình xin được gợi ý như sau :
- Tạo 1 master page. Cái này chứa giao diện chính của website.
- Các trang còn lại thì khai báo cái master page này vào đầu trang là được.
Rồi code cho từng trang
Vì vậy khi gọi các trang như login,register,... thì khi hiển thị thì bao gồm cả trang giao diện (master page) và nội dung của các trang con.
bạn nói cụ thể hơn đc ko, trc mình chỉ làm php, nên giờ qua asp thấy khó hiểu quá. làm sao để nọi dung trang con xuất hiện đúng vị trí như khi include trong php đc ?
amas viết 11:51 ngày 10/10/2018
Nói về master page:
http://www.asp.net/learn/master-pages/ : khá cụ thể .
Xem các video dạy về asp.net:
http://www.asp.net/learn/videos/ : dowload video miễn phí, code c# và vb.
tungoso viết 11:47 ngày 10/10/2018
hờ, mình tìm đc giải pháp rồi,nếu dùng include trong asp thì ko thể đặt biến vào đó, giải pháp của mình là thay bằng Server.Execute()
ambvn viết 11:42 ngày 10/10/2018
cái này là bác làm theo kiểu asp 3.0 rồi, lạc hậu rồi bác. Bỏ chút thời gian học C# rồi dùng asp.net đi bác
tungoso viết 11:53 ngày 10/10/2018
hic, rắc rối quá các ác ạ, mình lấy giá trị của p trên url bằng cách
Code:
p= Request.QueryString("p")
nhưng vấn đề gặp phải là ko thể gán giá trị default khi trên url ko có p, kiểu như link.asp?p=abc thì ok, nhưng link.asp (ko có p) thì ko biết làm sao dể gán 1 giá trị mặc định cho p trong trường hợp này
Bài liên quan
0